阿旭机器学习实战【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. 构建模型并进行预测
相关文章
|
18天前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
44 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
11天前
|
大数据 UED 开发者
实战演练:利用Python的Trie树优化搜索算法,性能飙升不是梦!
在数据密集型应用中,高效搜索算法至关重要。Trie树(前缀树/字典树)通过优化字符串处理和搜索效率成为理想选择。本文通过Python实战演示Trie树构建与应用,显著提升搜索性能。Trie树利用公共前缀减少查询时间,支持快速插入、删除和搜索。以下为简单示例代码,展示如何构建及使用Trie树进行搜索与前缀匹配,适用于自动补全、拼写检查等场景,助力提升应用性能与用户体验。
30 2
|
15天前
|
算法 搜索推荐 开发者
别再让复杂度拖你后腿!Python 算法设计与分析实战,教你如何精准评估与优化!
在 Python 编程中,算法的性能至关重要。本文将带您深入了解算法复杂度的概念,包括时间复杂度和空间复杂度。通过具体的例子,如冒泡排序算法 (`O(n^2)` 时间复杂度,`O(1)` 空间复杂度),我们将展示如何评估算法的性能。同时,我们还会介绍如何优化算法,例如使用 Python 的内置函数 `max` 来提高查找最大值的效率,或利用哈希表将查找时间从 `O(n)` 降至 `O(1)`。此外,还将介绍使用 `timeit` 模块等工具来评估算法性能的方法。通过不断实践,您将能更高效地优化 Python 程序。
31 4
|
19天前
|
机器学习/深度学习 存储 人工智能
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
使用Python作为开发语言,基于文本数据集(一个积极的xls文本格式和一个消极的xls文本格式文件),使用Word2vec对文本进行处理。通过支持向量机SVM算法训练情绪分类模型。实现对文本消极情感和文本积极情感的识别。并基于Django框架开发网页平台实现对用户的可视化操作和数据存储。
22 0
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
|
25天前
|
机器学习/深度学习 算法 数据挖掘
从菜鸟到大师:Scikit-learn库实战教程,模型训练、评估、选择一网打尽!
【9月更文挑战第13天】在数据科学与机器学习领域,Scikit-learn是不可或缺的工具。本文通过问答形式,指导初学者从零开始使用Scikit-learn进行模型训练、评估与选择。首先介绍了如何安装库、预处理数据并训练模型;接着展示了如何利用多种评估指标确保模型性能;最后通过GridSearchCV演示了系统化的参数调优方法。通过这些实战技巧,帮助读者逐步成长为熟练的数据科学家。
68 3
|
1月前
|
机器学习/深度学习 数据采集 算法
数据挖掘和机器学习算法
数据挖掘和机器学习算法
|
1月前
|
机器学习/深度学习 人工智能 算法
利用机器学习预测股市趋势:一个实战案例
【9月更文挑战第5天】在这篇文章中,我们将探索如何使用机器学习技术来预测股市趋势。我们将通过一个简单的Python代码示例来演示如何实现这一目标。请注意,这只是一个入门级的示例,实际应用中可能需要更复杂的模型和更多的数据。
|
1月前
|
机器学习/深度学习 算法 Python
决策树下的智慧果实:Python机器学习实战,轻松摘取数据洞察的果实
【9月更文挑战第7天】当我们身处数据海洋,如何提炼出有价值的洞察?决策树作为一种直观且强大的机器学习算法,宛如智慧之树,引领我们在繁复的数据中找到答案。通过Python的scikit-learn库,我们可以轻松实现决策树模型,对数据进行分类或回归分析。本教程将带领大家从零开始,通过实际案例掌握决策树的原理与应用,探索数据中的秘密。
32 1
|
1月前
|
机器学习/深度学习 数据采集 存储
一文读懂蒙特卡洛算法:从概率模拟到机器学习模型优化的全方位解析
蒙特卡洛方法起源于1945年科学家斯坦尼斯劳·乌拉姆对纸牌游戏中概率问题的思考,与约翰·冯·诺依曼共同奠定了该方法的理论基础。该方法通过模拟大量随机场景来近似复杂问题的解,因命名灵感源自蒙特卡洛赌场。如今,蒙特卡洛方法广泛应用于机器学习领域,尤其在超参数调优、贝叶斯滤波等方面表现出色。通过随机采样超参数空间,蒙特卡洛方法能够高效地找到优质组合,适用于处理高维度、非线性问题。本文通过实例展示了蒙特卡洛方法在估算圆周率π和优化机器学习模型中的应用,并对比了其与网格搜索方法的性能。
176 1
|
2月前
|
算法 安全 数据安全/隐私保护
Android经典实战之常见的移动端加密算法和用kotlin进行AES-256加密和解密
本文介绍了移动端开发中常用的数据加密算法,包括对称加密(如 AES 和 DES)、非对称加密(如 RSA)、散列算法(如 SHA-256 和 MD5)及消息认证码(如 HMAC)。重点讲解了如何使用 Kotlin 实现 AES-256 的加密和解密,并提供了详细的代码示例。通过生成密钥、加密和解密数据等步骤,展示了如何在 Kotlin 项目中实现数据的安全加密。
60 1
下一篇
无影云桌面