機器學習實戰kNN中的文字轉換為陣列程式心得

2021-07-22 18:59:42 字數 1366 閱讀 4252

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個最相似的...