阿旭机器学习实战【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. 构建模型并进行预测
相关文章
|
9月前
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
|
9月前
|
机器学习/深度学习 算法
机器学习第14天:KNN近邻算法
机器学习第14天:KNN近邻算法
|
9月前
|
机器学习/深度学习 数据采集 算法
Machine Learning机器学习之K近邻算法(K-Nearest Neighbors,KNN)
Machine Learning机器学习之K近邻算法(K-Nearest Neighbors,KNN)
|
9月前
|
机器学习/深度学习 算法 数据挖掘
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-2
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
|
9月前
|
机器学习/深度学习 Python
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-4
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
|
8月前
|
机器学习/深度学习 算法
【阿旭机器学习实战】【30】二手车价格预估--KNN回归案例
【阿旭机器学习实战】【30】二手车价格预估--KNN回归案例
|
4月前
|
机器学习/深度学习 算法
机器学习入门(三):K近邻算法原理 | KNN算法原理
机器学习入门(三):K近邻算法原理 | KNN算法原理
|
4月前
|
机器学习/深度学习 算法 API
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
|
9月前
|
机器学习/深度学习 算法 Python
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-1
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-1
|
9月前
|
机器学习/深度学习 人工智能 算法
【机器学习】K-means和KNN算法有什么区别?
【5月更文挑战第11天】【机器学习】K-means和KNN算法有什么区别?