亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

怎么用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
泰顺县| 板桥市| 星子县| 澜沧| 东至县| 长海县| 蒙自县| 贵定县| 柘荣县| 五原县| 丹东市| 迁西县| 和政县| 修水县| 朝阳区| 新津县| 汤阴县| 舟曲县| 西藏| 富源县| 鄄城县| 嘉义市| 阿坝| 庆安县| 宁乡县| 贵州省| 囊谦县| 葵青区| 建平县| 汶上县| 平和县| 长春市| 佛学| 阳原县| 南涧| 潼南县| 恩施市| 辛集市| 东源县| 敦化市| 汽车|