1、k近鄰演算法
k近鄰演算法的一般流程:
(1)收集資料:可以使用任何方法。
(2)準備資料:距離計算所需要的數值,最好是結構化的資料格式。
(3)分析資料:可以使用任何方法。
(4)測試演算法:計算錯誤率。
(5)使用演算法:首先需要輸入樣本資料和結構化的輸出結果,然後執行k近鄰演算法判定輸入資料分別屬於哪個分類,最後應用對計算出的分類執行後續的處理。
兩點間距離公式
import numpy as py
group = py.array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]]) #標籤位置
labels = ['a','a','b','b'] #標籤
# inx:輸入的測試向量
# k:代表頻率,選擇前k個距離最近的點,計算出k個點的頻率,取頻率最高的作為**分類
def knn(inx,group,labels,k):
datasize = group.shape[0] #取行
diffmat = py.tile(inx,(datasize,1))-group #生成與group相同大小的列表,元素都是inx,然後減去group
sqdiffmat = diffmat**2 # 對列表平方
sqdistances = sqdiffmat.sum(axis=1) #平方值相加
distances = sqdistances ** 0.5 #開方
sorteddis = distances.argsort() #返回從小到大的排序值下標 [1,43,2] 返回 [0,2,1]
classcount={}
for i in range(k):
voteilabel = labels[sorteddis[i]] #取出前k個距離最近的標籤
classcount[voteilabel] = classcount.get(voteilabel,0)+1 #統計出現頻率
sortedclasscount = sorted(classcount.items(),key=lambda x : x[1],reverse=true) #按照頻率降序排列
return sortedclasscount[0][0] #返回第乙個
《機器學習實戰》問題記錄
由於實驗室研究方向變更,本文不再更新 本文是對 機器學習實戰 進行學習時遇到問題記錄。由於書中 使用python2.x,而本機使用python3.x,導致執行時有部分程式出現錯誤。問題位置 3.2 在python中使用matplotlib註解繪製樹形圖 p45 程式清單3 6 獲取葉節點的數目和樹的...
機器學習實戰學習記錄 決策樹
決策樹中演算法採用的id3.劃分資料集基於 特徵。其中採用分類依據為資訊理論中的資訊增益和資訊熵 夏農熵 機器學習中夏農熵計算公式為 其中xi表示分類,p xi 表示xi分類的概率。首先,建立資料集及計算夏農熵 from math import log defcalcshannonent datas...
機器學習實戰
花了一段時間,總算把 機器學習實戰 粗讀了一遍,重點就在這個粗讀上。這本書的確不錯,機器學習的幾個經典演算法都涉及了,每個演算法都有1 2個實際例子進行說明,都有實實在在的 讓我想起了linus的 talk is cheap,show me the code 那句名言。但多年來養成的習慣,從來都是喜...