機器學習實戰 1 K近鄰

2021-09-03 02:04:43 字數 2790 閱讀 6826

1.np.tile(array,(行重複次數,列重複次數))

a=np.array([1,2,3])

b=np.tile(a,(2,3))

b= [[1 2 3 1 2 3 1 2 3]

[1 2 3 1 2 3 1 2 3]]

2.array.sum(axis=0/1)

0:每列求和

1:沒行求和

3.array.argsort()

將矩陣每行從小到大排序,返回其排序後的原始index組成的矩陣

so, a.shape=b.shape

4.向字典中新增元素(字典是無序的)

dict[『key』]=dict.get(『key』, default=none)

key – 字典中要查詢的鍵。

default – 如果指定鍵的值不存在時,返回該預設值。

5.sorted 排序:

對所有可迭代的物件進行排序操作。返回型別為list

sorted(iterable, key=none, reverse=false)

iterable – 可迭代物件。

key – 主要是用來進行比較的元素,只有乙個引數,具體的函式的引數就是取自於可迭代物件中,指定可迭代物件中的乙個元素來進行排序。

reverse – 排序規則,reverse = true 降序 , reverse = false 公升序(預設)。

sort 是應用在 list 上的方法,sorted 可以對所有可迭代的物件進行排序操作。

list 的 sort 方法返回的是對已經存在的列表進行操作,而內建函式 sorted 方法返回的是乙個新的list,而不是在原來的基礎上進行的操作。

6.dict.items()

字典 items() 方法:用列表返回可遍歷的(鍵, 值) 元組陣列。返回型別為元組樣式的列表

dict = 

print ("value : %s" % dict.items())

value : dict_items([('age', 7), ('name', 'runoob')])

7.對字典進行排序

list2=sorted(dict.items(),key=operator.itemgetter(0/1/2/3),reverse=true)

返回的是元組形式的列表

ture:倒敘

false:正序

import operator

dict_1=

list_1=sorted(dict_1.items(),key=operator.itemgetter(0),reverse=true)

print(list_1)

[('c', (0, 45, 8)), ('b', (2, 34, 10)), ('a', (1, 0, 6))]

目標:

對新輸入的資料進行分類,選取與新資料距離最近的k個點,投票選出新資料的型別

步驟:

1.計算新資料與每個已有資料的距離

2.將距離進行排序

3.選出最近的k個訓練資料

4.讀取k個訓練資料的label,並加和相同的label,對label加和列表進行排序,返回最大的label

輸入:

<1>新資料的特徵向量

<2>n個訓練資料(m維特徵)的特徵向量矩陣(nm)

<3>n個訓練資料對應label(n1)

<4>k數值

輸出:

經knn分類後,新資料的類別

from numpy import *

import operator

def createdataset():

group=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, dataset, labels, k):

datasetsize = dataset.shape[0]

diffmat=tile(inx,(datasetsize,1))-dataset

sqdiffmat=diffmat**2

sqdistance=sqdiffmat.sum(axis=1)

distance=sqdistance**0.5

sorteddistindicies=distance.argsort()

classcount={}

for i in range(k):

voteilabel=labels[sorteddistindicies[i]]

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

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

print(sortedclasscount)

return sortedclasscount[0][0]

機器學習實戰1 K近鄰演算法(KNN)

knn k nearest neighbors 演算法,也叫k最近鄰演算法。主要思想是,如果乙個樣本在特徵空間中的k個最相似 或最鄰近 的樣本中的大多數屬於某乙個類別,則該樣本也屬於這個類別。例如,村里投票建水井,有三個選址a,b和c,所有的人家都投了票,除了李四家。村書記決定找出距李四家最近的6戶...

機器學習實戰筆記1 K近鄰演算法詳解

最近在看 機器學習實戰 這本書,書中的 都是對某種演算法在對應應用場景的實現,感覺比大學時代的資料結構或者演算法題還要晦澀難懂,只能慢慢學習了,演算法這種東西類似做數學題,要多做多練。k 近鄰演算法乙個典型的應用場景就是在區別電影類別中,比如說根據在電影片段中出現親吻,打 鬥場景來判斷電影是否是愛情...

演算法1 k 近鄰

簡單地說,k 近鄰演算法採用測量不同特徵值之間的距離方法進行分類,屬於監督學習。工作原理 村愛乙個樣本資料集合 亦稱訓練樣本集 並且樣本集中每個資料都存在標籤,即我們知道樣本集中每一資料與所屬分類的對應關係。輸入沒有標籤的新資料後,將新資料每個特徵與樣本集中資料對應的特徵進行比較,然後演算法提取樣本...