KNN近邻算法-提高

目录

 

 

K近邻算法:nearest neighbors classification

k定义多少个邻居

原理

KNN入门使用

导包

加载数据文件,切割数据

 算法,训练

判断类型

鸢尾花数据集

KNN-鸢尾花分类


 

K近邻算法:nearest neighbors classification

邻居是什么类型,你就是什么类型。


k定义多少个邻居

物以类聚,人以群分

教会计算机根据‘邻居’分类,邻居:距离比较近

距离公式:欧氏距离

计算------>数学公式------>计算结果

 

原理

计算获取邻居(5个邻居)-------->统计,类别(富有,贫穷),富有:4个,贫穷:1个。

4 > 1 富有 > 贫穷 ------> 80% > 20% 计算机会返回概率结果,

人分类时,有可能出现错误,比如区分性别,人根据特征归类。

又比如12306验票,有的人,无法通过,人工通道(身份证和长相不一)

KNN入门使用

导包

import numpy as np
from sklearn.neighbors import KNeighborsClassifier
import pandas as pd

加载数据文件,切割数据

movie = pd.read_excel('./movies.xlsx',sheet_name=1)#加载数据文件,加载第二个

data=movie.iloc[:,1:3]#第一个:获取所有数据 第二个:对列切割
target=movie['分类情况']#目标值

display(data,target)#按目标值分类

 算法,训练

knn = KNeighborsClassifier(n_neighbors=5)#邻居为5
# 训练,学习,算法,知道,数据和目标值target什么样关系
knn.fit(data,target)
# 预测,使用,应用,高考
# 碟中谍6:100,3
# 谍影重重5:67,2
# 前任2 1,10
X_test = pd.DataFrame({'武打镜头':[100,67,1],'接吻镜头':[3,2,10]})
X_test

# 计算机,根据规则,返回的结果
# 算法‘意见’:结果
knn.predict(X_test)

 

判断类型

 

鸢尾花数据集

KNN-鸢尾花分类

import numpy as np

from sklearn.neighbors import KNeighborsClassifier

from sklearn import datasets #导入数据集


# 鸢尾花,因为自然环境不同,所以类别可以细分
iris = datasets.load_iris()#加载鸢尾花
X = iris['data']
y = iris['target']
# 150代表着150个样本,4代表着4个属性:花萼长、宽;花瓣长、宽
X.shape

一部分用于训练,另一部分用测试

# 打乱顺序
np.random.shuffle(index)
index

# 数据简单,只有4个属性
# p = 1 距离度量采用的是:曼哈顿距离
# p = 2 距离度量采用的是:欧氏距离 n_jobs = 4:开几个进程
# 100**0.5 = 10
knn = KNeighborsClassifier(n_neighbors=7,weights='distance',p = 1,n_jobs = 4)#distance离的越近,权重越大

knn.fit(X_train,y_train)

y_ = knn.predict(X_test)
knn.score(X_test,y_test)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值