一、sklearn基本知识
中文官网
英文官网
注意:sklearn第三方模块的安装 要用pip install scikit-learn
from sklearn.neighbors import KNeighborsClassifier
# 1 准备数据
# 训练集的特征数据 2维
x = [[-2],[-1],[2],[3],[4]]
# 训练集的目标数据 1维
y = [0,0,1,1,1]
# 预测数据 2维
z = [[1]]
# 2 调用接口
# 实例化对象
# weights = "distance" 表示位置权重,即距离越近,权重越高
res = KNeighborsClassifier(n_neighbors=2,weights = "distance")
# 训练数据
res.fi t(x,y)
# 预测数据
res.predict(z)
二、调用sklearn接口实现KNN算法
问题:完成前面讲的 预测电影类型
from sklearn.neighbors import KNeighborsClassifier
import pandas as pd
# 1 获取数据
mv_data = pd.read_excel("电影数据.xlsx",sheet_name="Sheet1")
# 测试集的特征数据 注意:这里需要转换成array类型
feature_test = mv_data.loc[:5,["打斗次数","接吻次数"]].values
# 测试集的目标数据
target_test = mv_data.loc[:5,"电影类型"].values
# 2 调用sklearn接口
learn = KNeighborsClassifier(n_neighbors=3,weights="distance")
learn.fit(feature_test,target_test)
learn.predict([[5,29],[78,34]])
三、k值的选择
不能过小,也不能过大,采用 交叉验证 的方法