機器學習 分類演算法 K 近鄰演算法06

2021-10-09 22:27:55 字數 2906 閱讀 6011

k最近鄰(k-nearest neighbor,knn)分類演算法,是乙個理論上比較成熟的方法,也是最簡單的機器學習演算法之一。該方法的思路是:在特徵空間中,如果乙個樣本附近的k個最近(即特徵空間中最鄰近)樣本的大多數屬於某乙個類別,則該樣本也屬於這個類別。

我們對應上面的流程來說

1.給定了紅色和藍色的訓練樣本,綠色為測試樣本

2.計算綠色點到其他點的距離

3.選取離綠點最近的k個點

4.選取k個點中,同種顏色最多的類。例如:k=1時,k個點全是藍色,那**結果就是class 1;k=3時,k個點中兩個紅色乙個藍色,那**結果就是class 2

:# k-近鄰**使用者簽到位置

# 1,讀取資料

data = pd.read_csv(

"train.csv"

)# print(data.head(10))

#,2,處理資料

# 縮小資料,查詢資料篩選

data = data.query(

"x > 1.0 & x <1.25 & y >2.5 & y < 2.75"

)# 處理時間資料

time_value = pd.to_datetime(data[

"time"

],unit=

"s")

# print(time_value)

# 把日期格式轉換成字典格式

time_value = pd.datetimeindex(time_value)

# 3,構造一些特徵

data[

"day"

]= time_value.day

data[

"hour"

]= time_value.hour

data[

"weekday"

]= time_value.weekday

# 把時間戳特徵刪除

data = data.drop(

["time"

],axis=1)

# sklearn中1表示列和pandas不一樣

# print(data)

#把簽到數量少於n個目標位置刪除

place_count = data.groupby(

"place_id"

).count(

) tf = place_count[place_count.row_id >3]

.reset_index(

) data = data[data[

"place_id"

].isin(tf.place_id)

] data = data.drop(

["row_id"

],axis=1)

print

(data)

# 取出資料當中的特徵值和目標值

y = data[

"place_id"

] x = data.drop(

["place_id"

],axis=1)

# 進行資料的分割 訓練集和測試集

x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=

0.25

)# 特徵工程(標準化)

std = standardscaler(

)# 對測試集和訓練集的特徵值進行標準化

x_train = std.fit_transform(x_train)

x_test = std.transform(x_test)

# 進行演算法流程

knn = kneighborsclassifier(n_neighbors=5)

# fit,predict,score

knn.fit(x_train,y_train)

# 得出**結果

y_predict = knn.predict(x_test)

print

("**的目標簽到位置為:"

,y_predict)

# 得出準確率

print

("**的準確率:"

,knn.score(x_test,y_test)

)if __name__==

"__main__"

: knncls(

)需調優提高準確度

機器學習 k近鄰演算法(分類電影)

案例 利用k近鄰演算法判斷電影類別。假設有如下資料,判斷新電影 打鬥鏡頭24,接吻鏡頭67 應該屬於愛情片還是動作片。繪製圖表如下 k 近鄰演算法步驟如下 1 計算已知類別資料集中的點與當前點之間的距離 2 按照距離遞增次序排序 3 選取與當前點距離最小的k個點 4 確定前k個點所在類別的出現頻率 ...

《機器學習實戰》 k近鄰分類演算法kNN

knn全稱為k nearest neighbors,是模式識別中比較簡單的一種演算法,可以用於分類和回歸。使用時,輸入的訓練樣本帶有標籤,輸出根據是用於分類還是回歸 分類問題的輸出為 找出k個和要 物件最近鄰的樣本,這k個樣本中,大多數 屬於哪一類即為 物件的分類標籤。回歸問題的輸出為 找出k個和回...

機器學習(二)k 近鄰分類演算法(kNN)

1 k 近鄰演算法概述 k 近鄰演算法採用 測量不同特徵值之間的距離的方法進行分類。優點 精度高 對異常值不敏感 無資料輸入假定 缺點 計算複雜度高 空間複雜度高 適用資料範圍 數值型和標稱型。2 工作原理 存在乙個樣本資料集合,也稱作訓練樣本集,並且樣本集中每個資料都存在標籤,即我們知道樣本集中每...