阿旭机器学习实战【4】KNN算法实战练习1:利用KNN算法预测某人对你喜欢程度

简介: 阿旭机器学习实战【4】KNN算法实战练习1:利用KNN算法预测某人对你喜欢程度

问题描述


依据某婚恋网站上的数据信息,通过算法预测某人对你的喜欢程度。


1. 读取数据


import pandas as pd
df=pd.read_csv('./datingTestSet.txt',sep='\t',header=None)
df.head()



image.png

通过观察我们可以看到,根据前3列表征的是特征数据,最后一列为标签数据,即代表喜欢的程度


# 查看标签类型有哪些
df[3].unique()


array(['largeDoses', 'smallDoses', 'didntLike'], dtype=object)
• 1


我们可以看到,喜欢的程度有3种:largeDoses:非常喜欢,smallDoses:有一点喜欢,didntLike:不喜欢


2. 特征工程


2.1 将标签数据映射为数字


我们将标签用数字表示,能够更加直观的通过数值大小观察喜欢程度。


largeDoses:3 ;smallDoses:2, didntLike:1


# 建立映射关系
target_map = {'largeDoses':3,
             'smallDoses':2,
             'didntLike':1}
df[3] = df[3].map(target_map)
df.head()


image.png


2.2 分割特征数据与标签数据


# 取特征数据
data = df.iloc[:,:-1].copy()
data.head()


image.png


# 取标签数据
target = df.iloc[:,-1].copy()
target.head()
0    3
1    2
2    1
3    1
4    1
Name: 3, dtype: int64


2.3 将特征数据进行归一化处理


# 我们直接使用sklearn库中的MinMaxScaler类
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler() #实例化
std_data = scaler.fit_transform(data)
std_data[:5]
array([[0.44832535, 0.39805139, 0.56233353],
       [0.15873259, 0.34195467, 0.98724416],
       [0.28542943, 0.06892523, 0.47449629],
       [0.82320073, 0.62848007, 0.25248929],
       [0.42010233, 0.07982027, 0.0785783 ]])


2.4 训练模型并进行预测


from sklearn.model_selection import train_test_split
# 切分训练集与测试集
x_train,x_test,y_train,y_test = train_test_split(std_data,target,test_size=0.01)


from sklearn.neighbors import KNeighborsClassifier
# 创建模型
knn = KNeighborsClassifier()
# 模型训练
knn.fit(x_train,y_train)
# 预测准确度
knn.score(x_test,y_test)


0.9
• 1


结果表明预测准确度为90%,结果还是比较好的,当然还可以进一步优化。好了这篇文章的内容就到这里,我们下次再见。


关注我的GZH:“阿旭算法与机器学习”,发送:KNN实战1,即可获取本文pdf及实战案例所使用的数据集


3. 总结


本文是关于KNN算法的一个实战练习,主要有以下几个内容:


  1. 数据读取与观察
  2. 对数据进行特征工程处理
  3. 构建模型并进行预测
相关文章
|
15天前
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
|
8天前
|
机器学习/深度学习 自然语言处理 算法
|
11天前
|
机器学习/深度学习 数据采集 算法
机器学习实战第3天:手写数字识别
机器学习实战第3天:手写数字识别
20 0
|
24天前
|
机器学习/深度学习 分布式计算 算法
大模型开发:你如何确定使用哪种机器学习算法?
在大型机器学习模型开发中,选择算法是关键。首先,明确问题类型(如回归、分类、聚类等)。其次,考虑数据规模、特征数量和类型、分布和结构,以判断适合的算法。再者,评估性能要求(准确性、速度、可解释性)和资源限制(计算资源、内存)。同时,利用领域知识和正则化来选择模型。最后,通过实验验证和模型比较进行优化。此过程涉及迭代和业务需求的技术权衡。
|
1月前
|
机器学习/深度学习 算法 生物认证
基于深度学习的人员指纹身份识别算法matlab仿真
基于深度学习的人员指纹身份识别算法matlab仿真
|
25天前
|
传感器 算法 计算机视觉
基于肤色模型和中值滤波的手部检测算法FPGA实现,包括tb测试文件和MATLAB辅助验证
该内容是关于一个基于肤色模型和中值滤波的手部检测算法的描述,包括算法的运行效果图和所使用的软件版本(matlab2022a, vivado2019.2)。算法分为肤色分割和中值滤波两步,其中肤色模型在YCbCr色彩空间定义,中值滤波用于去除噪声。提供了一段核心程序代码,用于处理图像数据并在FPGA上实现。最终,检测结果输出到"hand.txt"文件。
|
1月前
|
机器学习/深度学习 算法 计算机视觉
基于yolov2深度学习网络的视频手部检测算法matlab仿真
基于yolov2深度学习网络的视频手部检测算法matlab仿真
|
1月前
|
算法
【MATLAB】语音信号识别与处理:移动中位数滤波算法去噪及谱相减算法呈现频谱
【MATLAB】语音信号识别与处理:移动中位数滤波算法去噪及谱相减算法呈现频谱
20 2
|
1月前
|
算法
【MATLAB】语音信号识别与处理:一维信号NLM非局部均值滤波算法去噪及谱相减算法呈现频谱
【MATLAB】语音信号识别与处理:一维信号NLM非局部均值滤波算法去噪及谱相减算法呈现频谱
38 1
|
2天前
|
文字识别 算法 计算机视觉
图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
图像倾斜校正算法的MATLAB实现:图像倾斜角检测及校正
12 0

热门文章

最新文章