KNN分类模型:
分类:将一个未知归类的样本归属到某一个已知的类群众
预测:可以根据数据的规律计算出一个未知的数据
概念:
k-近邻算法才哟个测量不同特征值之间的距离方法进行分类(K-Nearest Neighbor,KNN),例如近朱者赤近墨者黑。
用法:导入相应的工具包
from sklearn.neighbors import KNeighborsClassifier
算法:
import pandas as pd
import warnings
warnings.simplefilter("ignore")
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split # 导入数据切分
import numpy as np
data = pd.read_excel('C:/Users/lenovo/Desktop/python_use/data/datasets/my_films.xlsx')
print(data)
# 1、提取特征数据
feature = data[['Action Lens', 'Love Lens']]
# 2、提取标签数据
target = data['target']
print(feature.shape, '\n', target.shape)
# 3、对于数据集进行切分
x_train,x_test,y_train,y_test = train_test_split(feature,target,test_size=0.1,random_state=1212)
# 4、创建算法模型对象
knn = KNeighborsClassifier(n_neighbors=3) # 实例化算法模型,n_neighbors代表KNN中的K
# 训练模型参数X用的是大写,代表的是特征数据必须是二维的
n = knn.fit(x_train, y_train)
print(n)
m=knn.predict(x_test)
print(m)
print(y_test)
运行后的结果:
名字 Action Lens Love Lens target
0 前任3 4 10 Love
1 西游记 16 2 Action
2 战狼2 18 3 Action
3 失恋33天 2 13 Love
4 宝贝计划 4 2 Comedy
5 捉妖记 10 10 Action
6 乡村爱情 3 4 Comedy
7 阳光的快乐生活 2 3 Comedy
8 后来的你们 2 11 Love
9 大话西游 18 2 Action
10 速度与激情8 3 19 Love
11 一路向北 5 17 Love
(12, 2)
(12,)
KNeighborsClassifier(n_neighbors=3)
['Love' 'Comedy']
3 Love
7 Comedy
Name: target, dtype: object
注意:
在实际应用中需要先对模型进行测试
使用以下代码:
knn.score(X_test,y_test)
算出模型的精度