中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

怎么用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
台前县| 安西县| 昌吉市| 周至县| 镇康县| 龙口市| 沙洋县| 宁陕县| 旅游| 新竹市| 吉木萨尔县| 洱源县| 广河县| 台东县| 丰城市| 莒南县| 静安区| 耿马| 会泽县| 浦北县| 霞浦县| 阿城市| 濮阳市| 泰顺县| 辽阳市| 砚山县| 大同县| 清远市| 合山市| 略阳县| 黄骅市| 辽宁省| 招远市| 永清县| 武义县| 阜宁县| 永嘉县| 望都县| 和林格尔县| 克东县| 贵州省|