def
file2matrix
(filename):
fr = open
(filename)
numberoflines = len
(fr.readlines())
returnmat = zeros
((numberoflines,3))
classlabelvector =
fr = open
(filename)
index = 0
forline
infr.readlines
(): line = line.strip()
listfromline = line.split('\t')
returnmat[index,:] = listfromline[0:3]
index += 1
return returnmat,classlabelvector
>>>reload(knn)
>>>datingdatamat,datinglabels = knn.file2matrix('datingtestset.txt')
但是執行這個程式是有問題的,主要出現在
本意是將listfromline最後一列的字元標籤轉成int型別,但是執行是不行的,會出錯。
* 按照英文版機器學習實戰,輸出的就是標籤字元,所以,可以改為如下:*
* 按照中文版機器學習實戰,要輸出int型數字,可以使用乙個字典:*
def
file2matrix
(filename):
''' :param filename: 輸入為檔名字串
:return: 輸出為訓練樣本矩陣和類標籤向量
'''fr = open(filename)
arrayolines = fr.readlines()
numberoflines = len(arrayolines)
returnmat = zeros((numberoflines, 3))
classlabelvector =
index = 0
string2int = # 建立乙個字典
for line in arrayolines:
line = line.strip()# 擷取回車字元
listfromline = line.split('\t')# 將整行的資料分割成乙個元素列表
returnmat[index, :] = listfromline[0:3]
index += 1
return returnmat, classlabelvector
機器學習實戰 kNN
一 演算法過程 1 首先存在乙個資料集作為訓練樣本集dataset,比如訓練樣本的資料中,每一條資料都包含乙個城市的某一天空氣中的pm2.5,no2濃度等維度的特徵值。每一條資料同時包含乙個標籤,比如這一天的空氣質素是優,良,輕度汙染,中度汙染,重度汙染中的乙個。2 現在我們輸入一條資料inx,如包...
機器學習實戰 KNN
import numpy as np import operator def createdataset group np.array 1.0,1.1 1.0,1.0 0,0 0,0.1 labels a a b b return group,labels def classify0 inx,dat...
機器學習實戰 kNN
k 近鄰演算法 knn k nearest neighbors 測量不同特徵值之間的距離方法進行分類。有乙個樣本資料集 每個樣本都存在標籤 輸入沒有標籤的新資料後,將新資料的每個特徵與樣本集中資料對應的特徵進行比較,提取樣本集中特徵最相似資料 最近鄰 的分類標籤。一般,只選擇樣本資料中前k個最相似的...