機器學習實戰學習記錄

2021-09-29 05:59:47 字數 1205 閱讀 3581

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 那句名言。但多年來養成的習慣,從來都是喜...