Lesson 21 KNN
監督學習(Supervised Learning)
從給定標注的訓練數據中學習出一個函數,根據這個函數為新數據進行標注
無監督學習(Unsupervised learning)
從給定無標注的訓練數據中學習出一個函數,根據這個函數為所有數據標注
分類(Classification)
分類算法通過對一只類別訓練數據集的分析,從中發現分類規則,以此預測新數據的類別,分類算法屬于監督學習
K近鄰分類算法
KNN 算法從訓練集中找到和新數據最接近的K條記錄,然后根據他們的主要分類來決定新數據的類別
交叉驗證(cross validation)
訓練集(Training set)
用來訓練模型或確定模型參數的數據集
測試集(testing set)
用來驗證模型準確性的數據集,但不保證模型的正確性
K折交叉驗證
設置K=10, 把原來的數據集隨機分成10分,分別為{D1, D2, ..., D10}
接著,使用D1作為測試集,{D2,D3,...,D10}作為訓練集,計算得分S1
繼續,使用D2作為測試集,{D1,D3,...,D10}作為訓練集,計算得分S2
......
最后,使用D10作為測試集,{D1,D2,...D9}作為訓練集,計算得分S10
API小結
neighbors.KNeighborsClassifier KNN模型
- knnModel = neighbors.KNeighborsClassifier(n_neighbors=5)
n_neighbors: 分類的個數
return: KNN模型 - knnModel.fit(tData, tTarget) KNN訓練方法
tData: 訓練數據的屬性數據
tTarget: 訓練數據的目標數據 - knnModel.score(sData, sTarget) KNN評分方法
sData: 測試數據的屬性數據
sTarget: 測試數據的目標數據 - knnModel.predict(pData) KNN預測方法
pData: 需要預測的屬性數據
return: 模型預測結果