机器学习【K-近邻算法】

KNN【K-近邻算法】

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zFPCr176-1684464222762)(C:\Users\Administrator\Desktop\1111.png)]
请添加图片描述
在这里插入图片描述
在这里插入图片描述

请添加图片描述
独热编码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
近似误差:对现有训练集的训练误差,关注训练集,如果近似误差过小可能会出现过拟合的现象,对现有的训练集能有很好的预测,但是对未知的测试样本将会出现较大偏差的预测。模型本身不是最接近最佳模型。
估计误差:可以理解为对测试集的测试误差,关注测试集,估计误差小说明对未知数据的预测能力好,模型本身最接近最佳模型。
在这里插入图片描述
在这里插入图片描述

特征工程—特征预处理

归一化
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实例:

···
1.knn判别类型的原理
标签

爱情电影
动作电影

判断依据是什么?动作镜头和爱情镜头,他们都是特征
···
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

data = pd.read_excel('./moive.xlsx')
2.特征构造
x = data[['动作镜头','爱情镜头']].copy()  # 不改变原始数据
y = data['电影类型'].copy()
3.待预测样本
# 电影A 【8,21】
# 电影B 【15,16】
# 预测样本的结构是二维数组
x_test = np.array([[8,21],[15,16]])
x_test
#取DF的数据,可以直接使用values
x.values
4.待分类样本的可视化
plt.figure(figsize=(8,5))
plt.scatter(x['动作镜头'],x['爱情镜头'],s=200,
            c=y.map({'动作电影':0,'爱情电影':1}),
            cmap=plt.cm.Accent_r)

5.重新绘制 分布画图观察结果
#只包含动作电影或者爱情电影的 特征
action = x.loc[y=='动作电影']
love = x.loc[y=='爱情电影']
plt.figure(figsize=(8,5))
plt.scatter(action['动作镜头'],action['爱情镜头'],
            s=200,
            c='blue',
           label='动作电影')
plt.scatter(love['动作镜头'],love['爱情镜头'],
            s=200,
            c='red',
           label='爱情电影')
plt.scatter(x_test[:,0],x_test[:,1],marker='*',s=200)
plt.xlabel('动作镜头')
plt.ylabel('爱情镜头')
plt.legend()
6.算法验证
# 1.导入knn分类器
from sklearn.neighbors import KNeighborsClassifier
# 2.实例化算法对象
knn = KNeighborsClassifier(n_neighbors=3)
# 3.训练模型,knn没有计算,只是存储数据
knn.fit(x,y)
# 4.预测待预测样本,knn有计算
knn.predict(x_test)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值