資料探勘十大經典演算法之一 K近鄰

2021-07-15 15:57:12 字數 1966 閱讀 6164

k近鄰(k-nearest neighbor,knn)是一種有監督學習方法,其工作機制很簡單:在給定測試樣本時,基於某種距離(歐氏距離)度量找出訓練樣本資料集中與其距離最近的k個樣本,然後基於這個k個樣本做**,通常採用的是「投票法」,也就是說屬於哪個類別的樣本數多,就**為該樣本。
歐氏距離:當p=2時,就是我們常見的歐式距離

曼哈頓距離:當p=1時稱之為曼哈頓距離

馬氏距離:馬氏距離標識的是資料的協方差距離,是一種有效的計算兩個未知樣本集的相似度的方法,在計算的過程中考慮到features之間的特徵,而且跟尺度無關(scale-invariant)。求馬氏距離的前提是要計算出樣本集的協方差矩陣,然後利用公式:

乙個包含3類且類別標籤為1,2,3的樣本集和待測試樣本item-1,計算item-1與樣本集中的沒想的距離,並取前k個距離最小的記錄,比如k=10,統計這五條集中出現最多的類別,並把該類別作為item-1的**類別。

item-1。

得到的k個最小的距離項分別為:a-1,b-2,c-3,d-2,e-1,f-3,g-1,h-1,i-2,j-1.其中數字表示類別,字母表示記錄的feature value。

統計k=10個項中個類別的個數,類別1–5個,類別2–3個,類別3–2個。

取上述結果最大的類別1作為item-1的**類別,所以item-1 的類別為1.

def

loadfile

(filename):

rawdata =

file = open(filename,'rb')

reader = csv.reader(file)

for line in reader:

rawdata.pop(0)

rawdata = array(rawdata).astype(int32)

return rawdata

defknnclassifier

(unclassifieditem,traindata,trainlabels,k):

datasetsize = traindata.shape[0]

diffmat = tile(unclassifieditem, (datasetsize,1)) - traindata

sqdiffmat = (diffmat)**2

sqdistances = sqdiffmat.sum(axis=1)

distances = sqdistances**0.5

sorteddistindicies = distances.argsort()

classcount={}

for i in range(k):

voteilabel = trainlabels[sorteddistindicies[i]]

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

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

return sortedclasscount[0][0]

defdigitclassify

(testdata,testdatalable,traindata,trainlable,k):

m = testdata.shape[0]

result = [['imageid','label']]

errorcount=0

for i in range(m):

classifyresult =knnclassifier(testdata[i],traindata,trainlable,k)

if(classifyresult !=testdatalable[i,1]):

errorcount+=1

return errorcount/float(m)

資料探勘十大經典演算法

最近想看看資料探勘是個什麼東西,因此特別的關注了下,首先看看資料探勘包含哪些演算法,網上找到了十大經典演算法 01.c4.5 是機器學習演算法中的一種分類決策樹演算法,其核心演算法是 id3演算法 02.k means演算法 是一種聚類演算法。03.svm 一種 監督式學習 的方法,廣泛運用於統計分...

資料探勘十大經典演算法

1 c4.5 2 k means 3 svm 4 apriori 5 em 6 pagerank 7 adaboost 8 knn 9 bayes 10 cart 1 c4.5 計算增益率 step1 計算資料集d的熵 單位為位元 info d step2 計算每個屬性的熵info x d step...

十大經典資料探勘演算法

c4.5演算法 機器學習演算法中的乙個分類決策樹演算法 cart 分類與回歸樹 c4.5與cart都是決策樹演算法 id3用資訊增益,c4.5用資訊增益率,cart用gini係數 knn 樸素貝葉斯 bayes 在眾多的分類模型中,應用最為廣泛的兩種分類模型是決策樹模型 decision tree ...