機器學習之 KNN近鄰演算法(一)入門

2022-03-21 21:42:30 字數 1807 閱讀 5314

是有監督學習的分類演算法

當**乙個新的值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'])

print

(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 分類演算法,是乙個理論上比較成熟的方...