import numpy as np
import operator
import collections
""" 函式說明:建立資料集
parameters:
無returns
group-資料集
labels-分類器
modify:
2018-11-17
dd b a
"""def createdataset():
# 四組的二維特徵
group=np.array([[1,101],[5,89],[108,5],[80,10]])
# 四組特徵對應的標籤
labels=['動作片','動作片','愛情片','愛情片']
return group,labels
def classify(inx,dataset,lables,k):
# 計算距離
dist=np.sum((inx-dataset)**2,axis=1)**0.5
print(dist)
print(dist.argsort()[0:3])
k_labels=[labels[index] for index in dist.argsort()[0:k]]
# print(collections.counter(k_labels).most_common(1)[0][0])
label=collections.counter(k_labels).most_common(1)[0][0]
return label
if __name__ =='__main__':
# 建立資料集
group,labels=createdataset()
# print(group)
# print(labels)
test=[100,200]
test_class=classify(test,group,labels,3)
print(test_class)
#處理分類問題
from sklearn.neighbors import kneighborsclassifier
#處理回歸問題
from sklearn.neighbors import kneighborsregressor
# 構建knn分類器物件
# n_neighbors 應設定為乙個奇數 一般不大於20 表示距離**樣本最近的n個樣本點
knnclf=kneighborsclassifier(n_neighbors=5)
import numpy as np
import pandas as pd
from pandas import series,dataframe
#x_train對應的二維陣列 第一列為動作鏡頭數 第二列為接吻鏡頭數 訓練資料
x_train=np.array([[19,1],[2,18],[25,1],[24,3],[3,17],[5,10],[7,8],[5,4],[5,3]])
y_train=np.array(['動作','愛情','動作','動作','愛情','愛情','愛情','動作','動作'])
display(x_train,y_train)
# 訓練分類器模型
knnclf.fit(x_train,y_train)
x_test=np.array([[13,10],[5,10]])
# **
knnclf.predict(x_test)
基於KNN的電影題材分類
我們主要來實踐 knn 分類演算法的案例 基於knn的電影題材分類 import numpy as np import pandas as pd from collections import counternumpy和pandas是 python 中常見的兩個庫 numpy 可以用來儲存和處理大型...
kNN分類演算法
knn k nearest neighbors 又叫k最鄰近演算法,是一種根據待分類的樣本與已知類別的樣本間的距離得到其分類結果的分類演算法。計算待分類樣本與所有已知類別樣本的距離值 從這些距離值中選取最小的k個 根據這k個樣本的類別情況,確定待分類的分類結果 距離的計算 這裡的距離其實是一種相似度...
kNN分類演算法
一 概述 knn演算法採用測量不同特徵值之間的距離方法進行分類。對未知類別屬性的資料集中的每個點執行如下操作 1 計算已知類別資料集中的點與當前點之間的距離 2 按照距離遞增次序排序 3 選取與當前點距離最小的k個點 4 確定前k個點所在類別的出現頻率 5 返回前k個點出現頻率最高的類別作為當前點的...