一、問題背景及資料下載部署
1、問題背景
https://archive.ics.uci.edu/ml/datasets/Iris

根據根據Iris花的4個特征萼片長度、萼片寬度、花瓣長度、花瓣寬度對Iris花分類,已知包括三種類別(Iris-setosa、Iris-versicolor、Iris Virginica)的Iris花的150條記錄,
對采集到的資料進行訓練,如果再給你一條Iris花的記錄,預測其所屬類別,完成分類,

下載完成后,修改后綴名為csv.


將該資料上傳到Jupiter Notebook.

打開是這樣的:

二、模型
sklearn簡化了由演算法部署到代碼的程序,但我們還是有必要學習以下,參考:
機器學習入門 —— 超級詳細的KNN演算法學習筆記、KNN演算法的三要素、KNN演算法的優缺點_SongyangJi-CSDN博客_knn演算法三要素文章目錄KNN(K nearest neighbors)K值的選擇和影響k取值偏小k取值偏大樣本點距離的計算方式閔可夫斯基距離曼哈頓距離歐幾里得距離切比雪夫距離余弦距離決策函式的選擇用于分類的多票表決法用于回歸的平均值法KNN演算法的優缺點KNN(K nearest neighbors)簡介K近鄰 (k-Nearest Neighbors, KNN) 演算法是一種分類與回歸演算法,是機器學習演算法中最基礎、最簡單的演算法之一, 1968年由 Cover和 Hart 提出, 應用場景有字符識別、 文本分類、https://blog.csdn.net/qq_44846324/article/details/114270003?utm_source=app&app_version=5.0.1&code=app_1562916241&uLinkId=usr1mkqgl919blen機器學習之KNN最鄰近分類演算法_pengjunlee的博客-CSDN博客_knn分類KNN演算法簡介KNN(K-Nearest Neighbor)最鄰近分類演算法是資料挖掘分類(classification)技術中最簡單的演算法之一,其指導思想是”近朱者赤,近墨者黑“,即由你的鄰居來推斷出你的類別,KNN最鄰近分類演算法的實作原理:為了判斷未知樣本的類別,以所有已知類別的樣本作為參照,計算未知樣本與所有已知樣本的距離,從中選取與未知樣本距離最近的K個已知樣本,根據少數服從多數...
https://blog.csdn.net/pengjunlee/article/details/82713047?utm_source=app&app_version=5.0.1&code=app_1562916241&uLinkId=usr1mkqgl919blen
三、問題解決
若無sklearn,cmd中輸入如下命令安裝sklearn
pip install sklearn
1.匯入包
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
import numpy as np
import pandas as pd
2. 資料匯入與預處理
cols_name = ['SepalLen','SepalWid','PetalLen','PetalWid','class']#增加表頭
df = pd.read_csv('iris.csv',names=cols_name)
df['class'] = pd.Categorical(df['class'])
df['class'] = df['class'].cat.codes#將三種花的分類名稱轉換為資料0,1,2
#print(df)
#df.head()#展示前幾條記錄
iris_X= df.iloc[:,0:4].values#分割 DataFrame
iris_y = (df['class']).values
x_train, x_test, y_train, y_test = train_test_split(iris_X, iris_y, test_size=0.2)#80%用于訓練,20%用于后續測驗評價
3.KNN演算法套用
distance代表由距離確定的權重不一樣,
clf = KNeighborsClassifier(n_neighbors = 3 , weights = 'distance')
clf.fit(x_train,y_train)

4.測驗與評價
y_pred = clf.predict(x_test)
print(accuracy_score(y_pred, y_test)) # 計算準確率
data=[[4.75,3.8,1.43,0.4]] #預測資料分類
print(clf.predict(data))

四、總結
本文適合新手入門機器學習的分類演算法,另外,在資料處理中本文對待也比較簡單,僅僅是將文本資料用0,1,2代替,其實,其他資料也可以考慮無量綱化,總之,本文的漏洞還是很多的,但是適合新手熟悉資料的匯入(pd,np的運用),以及體會分類的概念與流程,
Python資料預處理:徹底理解標準化和歸一化_簡說Python的博客-CSDN博客文章來源:機器學習演算法與Python實戰作者:為胡同學點贊資料預處理資料中不同特征的量綱可能不一致,數值間的差別可能很大,不進行處理可能會影響到資料分析的結果,因此,需要對資料按照一定比...https://blog.csdn.net/qq_39241986/article/details/107031900?ops_request_misc=%7B%22request_id%22%3A%22164614376016780271931846%22%2C%22scm%22%3A%2220140713.130102334..%22%7D&request_id=164614376016780271931846&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-2-107031900.pc_search_insert_es_download&utm_term=Python%E5%BD%92%E4%B8%80%E5%8C%96&spm=1018.2226.3001.4187
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/436388.html
標籤:AI
