knn最近鄰演算法(有監督學習)

2021-09-25 02:23:14 字數 3894 閱讀 7724

對有標籤的資料進行分類。計算所有樣本和x的距離,得到距離最近的k(k為超引數)個樣本點,哪種類別佔據多數,x就被劃分為哪一類。

k值一般選擇為奇數,方便進行多數類別的統計。

歐式距離(euclidean distance):

2]# 只選擇花萼長,花萼寬兩個特徵 繪製三種鳶尾花

# plt.figure(figsize=(16,5))

# ax = plt.subplot(122)

# ax1 = plt.subplot(121)

# ax1.scatter(iris.data[:50,0], iris.data[:50,1], alpha=.6, label='0')

# ax1.scatter(iris.data[50:100,0], iris.data[50:100,1], alpha=.6, label='1')

# ax1.scatter(iris.data[100:150,0], iris.data[100:150,1], alpha=.6, label='1')

# ax1.set_xlabel('sepal length(cm)')

# ax1.set_ylabel('sepal width(cm)')

# ax1.legend();

# 只選擇花瓣長,花瓣寬兩個特徵 繪製三種鳶尾花

# 匯入資料

> iris = datasets.load_iris(

)> x_train, x_test, y_train, y_test = train_test_split(

iris.data, iris.target, test_size=

0.3, random_state=42)

>

print

('feature:\n'

, x_train[:5

])>

print

('target:\n'

, y_train[:10

])feature:[[

5.52.4

3.71.]

[6.3

2.85.1

1.5]

[6.4

3.15.5

1.8]

[6.63.

4.41.4][

7.23.6

6.12.5]]

target:[1

2212

1210

2]> neigh = kneighborsclassifier(n_neighbors=5)

> neigh.fit(x_train, y_train)

kneighborsclassifier(algorithm=

'auto'

, leaf_size=

30, metric=

'minkowski'

, metric_params=

none

, n_jobs=

none

, n_neighbors=

5, p=2,

weights=

'uniform'

)# 對測試集進行**

> neigh.predict(x_test)

array([1

,0,2

,1,1

,0,1

,2,1

,1,2

,0,0

,0,0

,1,2

,1,1

,2,0

,2,0

,2,2

,2,2

,2,0

,0,0

,0,1

,0,0

,2,1

,0,0

,0,2

,1,1

,0,0

])# 測試集的準確率

> neigh.score(x_test, y_test)

1.0

機器學習 KNN最近鄰演算法

k近鄰 k nearest neighbor,knn 可以做分類,也可以做回歸。一 基本思想 給定一組訓練集,有乙個需要判斷類別的輸入例項,離輸入例項最近的k個訓練資料屬於哪個類別,就判斷輸入例項屬於哪個類別。二 分類演算法描述 1 計算輸入例項和所有訓練集資料的距離 2 按距離公升序排序 3 選擇...

有監督學習

利用一組帶有標籤的資料,學習從輸入到輸出的對映,然後將這種對映關係應用到未知資料上,達到分類或回歸的目的。分類 當輸出為離散的,學習任務為分類任務。回歸 當輸出為連續的,學習任務為回歸任務。訓練集 用來訓練的已標註的資料,用來建立模型,發現規律。測試集 已標註的資料,通常隱藏標記,輸送給以訓練的模型...

有監督學習 無監督學習與半監督學習

這個問題可以回答得很簡單 是否有監督 supervised 就看輸入資料是否有標籤 label 輸入資料有標籤,則為有監督學習,沒標籤則為無監督學習。但根據知乎慣例,答案還是要繼續擴充套件的。首先看什麼是學習 learning 乙個成語就可概括 舉一反三。此處以高考為例,高考的題目在上考場前我們未必...