是有監督學習的分類演算法
當**乙個新的值x的時候,根據它距離最近的k個點是什麼類別來判斷x屬於哪個類別。
1.資料預處理:目標label轉換成數字
2.資料集進行二八分,測試knn模型計算的準確性
準備資料:
moviename,kiss,action,type我在時間盡頭等你,20,0,愛情
倩女幽魂,10,5,愛情
龍嶺迷窟,2,30,動作
葉問,0,40,動作
極限先鋒,5,20,動作
東海人魚傳,15,5,愛情
上海王,10,2,愛情
海王,2,20,動作
喋血戰士,10,30,動作
親吻亭,40,2,愛情
**:設定某個neighbor的值,求出乙個**模型,並求出該model的準確率
#-*-coding:gb2312-*-
import
numpy as np
import
pandas as pd
from sklearn.neighbors import
kneighborsclassifier
from sklearn.preprocessing import
labelencoder
if__name__ == '
__main__':
#讀取csv中的電影資訊資料
#將目標字串列轉為數字(為了方便後面求**準確率)
label = labelencoder().fit_transform(df['
type'])
(label)
#電影分 3 7組
train,test = df.iloc[:7,1:3],df.iloc[7:,1:3] #
抓取1 2列(kiss和action)作為特徵(使用二維作為特徵!)
train_target,test_real_target = label[:7],label[7:] #
label是一維陣列,取前7個和後3個
#開啟 knn模型進行模型訓練,設n等於5
knn = kneighborsclassifier(n_neighbors=5)
knn.fit(train,train_target)
#利用留下的2個電影進行測試
pred =knn.predict(test)
print(pred) #
**的結果
print("
-------")
print(test_real_target) #
真實資料
print("
====準確率===
") #
衡量**的準確性
print(1-abs(pred-test_real_target).sum()/len(pred))
結果:[1 1 0 0 0 1 1 0 0 1] # 真實label
[1 0 1] # **結果
-------
[0 0 1] # 真實資料
====準確率===
0.6666666666666667
機器學習入門KNN近鄰演算法 一
1 機器學習處理流程 2 機器學習分類 3 k 近鄰演算法原理 4 knn用於分類 5 knn用於回歸 import numpy as np import matplotlib.pyplot as plt from sklearn.neighbors import kneighborsregress...
機器學習入門 KNN近鄰演算法
knn近鄰演算法終極思想莫非一句話 物以類聚,人以群分。此演算法為機器學習入門的演算法,複雜程度極低,適合入門新手練習。雖然演算法簡單,可並不代表沒用,麻雀雖小,五臟六腑俱全。在本圖中求綠色圓屬於哪一類?怎麼求?如何驗證?機器學習思想,但凡是設計到屬於哪一類這種問題很多人會想到,分類器 classi...
機器學習 kNN近鄰演算法
上圖中,綠色圓要被決定賦予哪個類,是紅色三角形還是藍色四方形?如果k 3,由於紅色三角形所佔比例為2 3,綠色圓將被賦予紅色三角形那個類,如果k 5,由於藍色四方形比例為3 5,因此綠色圓被賦予藍色四方形類。k最近鄰 k nearest neighbor,knn 分類演算法,是乙個理論上比較成熟的方...