91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

怎么用python代碼實現knn算法

小億
96
2023-10-11 16:06:44
欄目: 編程語言

下面是一個簡單的示例代碼,實現了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。

0
抚州市| 汕尾市| 德兴市| 高阳县| 鱼台县| 石棉县| 河池市| 兴化市| 元谋县| 乐亭县| 滨海县| 开江县| 行唐县| 梁河县| 黑龙江省| 昭苏县| 高碑店市| 仁寿县| 鄂州市| 绥中县| 东港市| 仙桃市| 新巴尔虎左旗| 延安市| 屯门区| 武定县| 崇文区| 永登县| 赣州市| 台中县| 新建县| 山阴县| 五华县| 宜春市| 巴青县| 军事| 宝坻区| 安西县| 咸丰县| 蒲城县| 七台河市|