第L4周:机器学习|K-邻近算法模型学习记录

第L4周:机器学习|K-邻近算法模型学习记录

#问题背景

海伦一直使用在线约会网站寻找适合自己的约会对象。尽管约会网站会推荐不同的人选,但她没有从中找到喜欢的人。经过一番总结,她发现曾交往过三种类型的人:

● ①不喜欢的人

● ②魅力一般的人

● ③极具魅力的人

她现在总结好的数据中(即训练集)包含三种特征:

● ①每年获得的飞行常客里程数

● ②玩视频游戏所耗时间百分比

● ③每周消费的冰淇淋公升数

她希望根据现有的数据来判断一个陌生男人会被她归到哪一类。

#K-近邻算法模型代码实现

1.导入数据

数据标签详解:

● 0:每年获得的飞行常客里程数

● 1:玩视频游戏所耗时间百分比

● 2:每周消费的冰淇淋公升数

● 3:人物类别(不喜欢的人、魅力一般的人、极具魅力的人)

import pandas as pd

data=pd.read_table(r"E:\文件\python学习\K同学啊 365\数据\datingTestSet2.txt",
                   sep='\t',
                   header=None)
#sep='\t'告诉read_table()函数,它应该按照制表符来分割每一行的数据
#header=None表示文件中没有列标题行,因此pandas在读取数据时会为DataFrame的列自动生成默认的列名(通常是整数,从0开始)

data.head()

0123
0409208.3269760.9539523
1144887.1534691.6739042
2260521.4418710.8051241
37513613.1473940.4289641
4383441.6697880.1342961
X = data.iloc[:,:3]
y = data.iloc[:,3]

2.划分训练集和测试集

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, 
                                                    test_size=0.25, 
                                                    random_state=3)

3.K-邻近算法模型

from sklearn.neighbors import KNeighborsClassifier

knc = KNeighborsClassifier()
knc.fit(X_train, y_train)

4.结果预测

data["预测结果"] = knc.predict(data.iloc[:,:3])
data.head(5)

4.模型评分



```python
scoreK = knc.score(X_test,y_test)

print(scoreK)
0.796

#总结

k-近邻算法:用于分类和回归

基本思想:给定一个待分类样本,找出与其距离最近的k个训练样本(邻居),然后通过这k个邻居的类别来决定待分类样本的类别,即这K个样本的多数属于某个类,就把该输入样本分类到这个类中。(少数服从多数)

三要素:距离度量、k值选择和分类决策规则

算法流程:

1.选择参数k:选择k个邻居

2.计算距离:对待预测样本和训练样本中的每一个样本计算距离。有欧氏距离、曼哈顿距离等

3.选择k个最近的邻居:从训练样本中选出与待预测样本距离最近的k个样本

4.计算预测值:在分类任务中,选择k个邻居中出现最多的类别作为结果。在回归任务中,通过取k个邻居的平均值作为预测结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值