概念
-
監督學習(Supervised Learning)
- 從給定標注的訓練數據集中學習出一個函數,根據這個函數為新函數進行標注
-
無監督學習(Unsupervised Learning)
- 從給定無標注的訓練數據中學習出一個函數,根據這個函數為所有數據標注
-
分類(Classification)
分類算法通過對已知類別訓練數據集的分析,從中發現分類規則,以此預測新數據的類別,分類算法屬於監督學習
KNN(K Nearest Neighbors)
K近鄰分類算法:KNN算法從訓練集中找到和新數據最接近的K條記錄,然后根據他們的主要分類來決定新數據的類別

交叉驗證法(Cross Validation)
訓練集(Train Set):用來訓練模型或確定模型的數據
測試集(Test Set):用來驗證模型的准確性的數據

iris數據集
iris數據集的中文名是安德森鳶尾花卉數據集,英文全稱是Anderson’s Iris data set。iris包含150個樣本,對應數據集的每行數據。每行數據包含每個樣本的四個特征和樣本的類別信息,所以iris數據集是一個150行5列的二維表。
通俗地說,iris數據集是用來給花做分類的數據集,每個樣本包含了花萼長度、花萼寬度、花瓣長度、花瓣寬度四個特征(前4列),我們需要建立一個分類器,分類器可以通過樣本的四個特征來判斷樣本屬於山鳶尾、變色鳶尾還是維吉尼亞鳶尾(這三個名詞都是花的品種)。
iris的每個樣本都包含了品種信息,即目標屬性(第5列,也叫target或label)。

--------------------- 來自 善戰驍勇 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/java1573/article/details/78865495?utm_source=copy
步驟
1、導入iris數據集
numpy、sklearn中的datasets類
導入iris數據集可以通過sklearn自帶的方法導入iris數據集,前面有iris數據集的相關介紹
import numpy from sklearn import datasets #導入iris數據集 iris=datasets.load_iris() iris #查看數據的規模 iris.data.shape #查看訓練目標的總類 numpy.unique(iris.target)#去重數組
train_test_split是交叉驗證中常用的函數,功能是從從樣本中隨機按比例選取train data和test data,形式為:data_train,data_test,target_train,target_test=train_test_split(iris.data,iris.taget,test_size=0.3,random_state=0)
- iris.data為特征數據;
- iris.target為目標數據;
- test_size為測試的占比,一般使用三七分,訓練集占0.7;
- random_state:是隨機數的種子
1 from sklearn.model_selection import train_test_split 2 3 data_train, data_test, target_train, target_test=train_test_split( 4 iris.data, #特征數據 5 iris.target, #目標數據 6 test_size=0.3 #測試的占比,一般使用三七分,訓練集占0.7 7 ) 8 9 10 data_train.shape 11 data_test.shape 12 target_train.shape 13 target_test.shape
2、使用KNN的建模類neighbors.KNeighborsClassifier()
1 from sklearn import neighbors 2 3 knnModel=neighbors.KNeighborsClassifier(n_neighbors=3) #分類的個數,可以從數據集中獲取 4 5 knnModel.fit(data_train,target_train) 6 7 knnModel.score(data_test,target_test)
3、使用cross_val_score類、預測
1 from sklearn.model_selection import cross_val_score 2 3 cross_val_score( 4 knnModel, 5 iris.data,iris.target,cv=5 #cv為k折交叉驗證的K值 6 ) #返回五次驗證 7 8 #使用模型進行預測 9 knnModel.predict([[0.1,0.2,0.3,0.4]])
KNeighborsClassifier在sklearn.neighbors包之中。
KNeighborsClassifier使用很簡單,
1)創建KNeighborsClassifier對象;
2)調用fit函數;
3)調用predict函數進行預測。以下代碼說明了用法。
