机器学习——KNN算法的实例

写个导语:

        学校课设安排进行机器学习的学习,这节课学了KNN算法有个电影预测的小案例

问题是这样的,给你几个电影里面拥抱、打斗镜头的数量和他的类型,给了这些数据让你来预测一个只有镜头数量的电影来预测他的类型

数据类型是这样的

机器学习——KNN算法的实例_第1张图片

下面看傻瓜级代码,不再做文字分析了

使用python编写,数据集文件为csv

文件如图所示

机器学习——KNN算法的实例_第2张图片

 代码

from sklearn.model_selection import train_test_split
#导入train_test_split这个函数是用来将数据分为训练集和测试集的
from sklearn.neighbors import KNeighborsClassifier
#导入KNeighborsClassifier类,这个类是用来做机器学习的
import pandas as pd
#导入pandas库用来处理数据

#加载数据
data = pd.read_csv("/root/demo/movie.csv")
#data
#删除掉数据中的无关项只保留特征值和目标值
#提取特征值
#本案例中删除的是电影名字和目标值类型,因为删除的是列,所以轴为1
x = data.drop(["type","movie"],axis = 1)
#x
#y提取的是目标值
y = data["type"]
#y
#下面是使用train_test_split函数将训练集和测试集分开,
#其实很多时候数据都是两个已经分好的文件一个训练集,一个测试集
#这个其实是为了来进行求误差值的
#本个案例中并没有使用测试集
#这个x_train,y_train分别是训练集的特征值和目标值
#train_test_split函数中
#x代表特征值,y代表目标值,test_size表示测试集占训练集的多少
#注意:这里的数据分割是随机的,并不是顺序的
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.25)
#x_train
#y_train
#开始加载KNeighborsClassifier类,准备调用他里面的函数
#这里插一句,为什么他是类而上面的train_test_split就是函数呢
#python中调用类,类的名字首字母大写
#knn其实是一个对象,应该就是这样的
knn = KNeighborsClassifier()

#下面用knn对象中的fit函数进行训练
knn.fit(x_train,y_train)
#带入数据
#声明pandas,列名为c1,c2,c3
sub = ["c1","c2","c3"]
#行名为0
idx = [0]
#具体数据
val = [
    [23,3,17]
]
#调用pandas中的DataFrame把数据传进来封装,
#val为具体的数据值
#columns = sub列名为sub
#index = idx行名为idx
data = pd.DataFrame(val,columns=sub,index=idx)
#调用predict函数来预测该数据
result = knn.predict(data)
#打印预测结果也就是该数据的目标值
print(result)

 

你可能感兴趣的:(机器学习,机器学习,算法,近邻算法)