機器學習與python實戰(一) k近鄰

2021-08-07 18:24:29 字數 1184 閱讀 1615

knn(k-nearest neighbor)演算法是乙個簡單而經典的機器學習分類演算法,通過度量」待分類資料」和」類別已知的樣本」的距離對樣本進行分類。

from numpy import *

import operator

#產生資料集

defcreatedataset

(): groups = array([[1.0, 1.0], [1.0, 1.1], [0, 0], [0, 0.1]])

lables = ['a', 'a', 'b', 'b']

return groups, lables

#分類def

classify0

(intx, dataset, labels, k):

#1、計算到所有點的距離

datasetsize = dataset.shape[0]

diffmat = tile(intx, (datasetsize, 1)) - dataset

sqdiffmat = diffmat**2

sqdistances = sqdiffmat.sum(axis=1)

distances = sqdistances**0.5

#2、根據距離進行排序

sortedclasscount = sqdistances.argsort()

classcount = {}

#3、選取種類最多的類別

for i in range(k):

voteilabels = labels[sortedclasscount[i]]

classcount[voteilabels] = classcount.get(voteilabels, 0) + 1

sortedcount = sorted(classcount.iteritems(), key=operator.itemgetter(1), reverse=true)

return sortedcount[0][0]

defmain

(): groups,labels = createdataset()

result = classify0([0, 0], groups, labels, 3)

print result

main()

來自《機器學習實戰》一書,剛剛開始看,目前感覺還比較友好,繼續ing

python機器學習理論與實戰(一)K近鄰法

機器學習分兩大類,有監督學習 supervised learning 和無監督學習 unsupervised learning 有監督學習又可分兩類 分類 classification.和回歸 regression 分類的任務就是把乙個樣本劃為某個已知類別,每個樣本的類別資訊在訓練時需要給定,比如人...

機器學習python實戰 k近鄰演算法

前一周學習了一些理論的知識,雖然懂了原理,但感覺真要寫起 來還是摸不著頭腦,所以接下來的幾天都打算在 方面下一番功夫。由於接觸python不久,且能力有限,難免有些錯誤的或者理解不到位的地方,希望讀者不吝指正!k 近鄰演算法 k nn 的基本原理 存在乙個樣本資料集合,也叫訓練樣本集,並且樣本集中的...

機器學習實戰 k 臨近演算法(一)

工作原理 存在乙個樣本資料集合,也稱為訓練樣本集,並且樣本集中每個資料都存在標籤,即我們知道樣本集中每一資料與所屬分類的對應關係。輸入沒有標籤的新資料後,將新資料的每個特徵與樣本集中資料對應的特徵進行比較,然後演算法提取樣本集中特徵最相似資料 最鄰近 的分類標籤。一般來說,我們只選擇樣本資料集中前k...