零基礎學習機器學習 k 近鄰演算法

2021-10-05 17:32:48 字數 3046 閱讀 1266

目錄

k-近鄰演算法

什麼是k-近鄰演算法

舉例:k-近鄰演算法api 實戰

分析**演練

k-近鄰演算法優缺點

屬於分類演算法,特徵是:目標值是離散的。

電影型別是目標值,推斷某個電影的電影型別是什麼?可以根據此電影與哪個電影型別距離最近,則是什麼型別的電影。

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

:return: none

"""# todo 讀取資料

data = pd.read_csv("train.csv")

# print(data.head(10))

# todo 處理資料

# 1、縮小資料量,為了迅速查詢資料

data = data.query("x>1.0 & x<1.25 & y>2.5 & y<2.75")

# print(data.head(10))

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

time_value = pd.to_datetime(data['time'], unit='s')

# print(time_value)

# print(type(time_value)) # series

time_value = pd.datetimeindex(time_value)

# print(time_value)

# print(type(time_value)) # datetimeindex

# 2、構造一些時間特徵

data['day'] = time_value.day # 這種形式的增加列,是把time_value的day複製乙份,而loc方法是直接拿來用。

data['hour'] = time_value.hour

data['weekday'] = time_value.weekday

# 3、把時間戳特徵刪除

data = data.drop(['time'], axis=1) # pandas中axis=1表示列

# print(data)

# 4、將簽到位置少於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)]

# 把row_id列刪除,此列無意義

data = data.drop(['row_id'], axis=1)

print(data)

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

y = data['place_id']

x = data.drop(['place_id'], axis=1)

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

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25) # 訓練目標值,測試目標值,訓練特徵值,測試特徵值

# todo 特徵工程(標準化)

std = standardscaler()

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

x_train = std.fit_transform(x_train)

x_test = std.transform(x_test)

# todo 進行演算法流程

knn = kneighborsclassifier(n_neighbors=5)

# fit predict,score

knn.fit(x_train, y_train)

# todo 得出**結果

y_predict = knn.predict(x_test)

print("y**的目標簽到位置為:", y_predict)

# todo 得出準確率

print("**的準確率:", knn.score(x_test, y_test))

return none

if __name__ == '__main__':

knncls()

k值取很小,容易受異常點影響

k值取很大,容易受目標值的數量(類別)波動

效能:很慢

機器學習 k 近鄰演算法

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

機器學習 K近鄰演算法

用例一 from sklearn.neighbors import nearestneighbors import numpy as np x np.array 1,1 2,1 3,2 1,1 2,1 3,2 nbrs nearestneighbors n neighbors 2,algorithm...

機器學習 K近鄰演算法

工作原理 存在乙個訓練樣本資料集合,每組資料對應乙個標籤及分類 比如下邊例子為前兩個資料都為a類 輸入測試樣本後通過計算求出測試樣本與訓練樣本的歐氏距離d,取前k個最小的值,這k組資料對應的標籤分類最多的那種,就是測試樣本的標籤。訓練樣本資料 1.0,1.1 1.0,1.0 0,0 0,0.1 歐氏...