久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

怎么用python代碼實現knn算法

210次閱讀
沒有評論

共計 917 個字符,預計需要花費 3 分鐘才能閱讀完成。

下面是一個簡單的示例代碼,實現了 knn 算法:

python
import numpy as np
from collections import Counter

def knn(train_X, train_y, test_X, k):

   distances = []

   

   # 計算測試樣本與訓練樣本之間的距離

   for i in range(len(train_X)):

       distance = np.sqrt(np.sum(np.square(test_X - train_X[i])))

       distances.append((distance, train_y[i]))

   

   # 按距離從小到大排序

   distances.sort(key=lambda x: x[0])

   

   # 選擇距離最近的 k 個樣本

   neighbors = []

   for i in range(k):

       neighbors.append(distances[i][1])

   

   # 根據 k 個樣本的標簽進行投票,選擇出現次數最多的標簽作為預測結果

   counter = Counter(neighbors)

   prediction = counter.most_common(1)[0][0]

   

   return prediction

# 測試數據
train_X = np.array([[1, 1], [1, 2], [2, 2], [3, 3], [4, 4]])
train_y = np.array([0, 0, 1, 1, 1])
test_X = np.array([[2, 3]])

# 使用 knn 算法進行預測
prediction = knn(train_X, train_y, test_X, 3)
print(" 預測結果:", prediction)

在這個示例中,我們使用 numpy 庫進行數據處理,collections 庫中的 Counter 類用于計算標簽的出現次數。首先,計算測試樣本與訓練樣本之間的歐式距離,并將距離和對應的標簽保存在列表中。然后,根據距離從小到大排序,選擇距離最近的 k 個樣本。最后,根據 k 個樣本的標簽進行投票,選擇出現次數最多的標簽作為預測結果。在這個例子中,我們使用一個簡單的二維數據集進行測試,預測結果為 1。

丸趣 TV 網 – 提供最優質的資源集合!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-21發表,共計917字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 隆化县| 涡阳县| 盐山县| 比如县| 平舆县| 化州市| 桦甸市| 基隆市| 八宿县| 滨州市| 阿鲁科尔沁旗| 北宁市| 城口县| 呈贡县| 婺源县| 宝丰县| 兴义市| 扶绥县| 阳新县| 游戏| 铜梁县| 固安县| 乌什县| 锡林郭勒盟| 阿荣旗| 登封市| 上林县| 鄢陵县| 封开县| 石门县| 西昌市| 澄江县| 平塘县| 团风县| 郑州市| 哈密市| 犍为县| 礼泉县| 新乡县| 黔西| 元江|