我想先说说我初学scikit-learn 的感受吧。刚进入网站,全是英文。本来看汉语时一些专业的词汇都那么晦涩难懂,再全是英文,我就有了一种窒息的感觉,连基础的代码都看不懂,感觉自己什么都学不会,难受。后来使用谷歌浏览器翻译了一下网页,感觉好多了,又去B站上搜索视频教程,才重新燃起对自己的希望。

k近邻算法(nearest neighbors classfication)

k 定义了多少个邻居
教会计算机根据邻居分类
邻居:距离比较近
距离公式:欧氏距离
d=(x1−y1)2+(x2−y2)2+(x3−y3)2+……d = \sqrt{(x1 - y1)^2 + (x2 - y2)^2 + (x3 - y3)^2 + ……}d=(x1−y1)2+(x2−y2)2+(x3−y3)2+……​
距离越小,就越近 d<10 规定为邻居
计算获取5个邻居——>统计,类别(富有,贫穷)富有:4个 贫穷:1个
4>1 富有>贫穷 ——>80%>20% 计算机返回概率的结果。
结论:我也是富有的
knn算法实例①——>电影分类

import numpy as np
from sklearn.neighbors import KNeighborsClassifier
import pandas as pd
# 分类,电影类型
# 动作 武打镜头:碟中谍6,杀死bill,谍影重重
# 爱情 接吻镜头:泰坦尼克号
# 属性:武打镜头,接吻镜头
# 量化,数量化,数字化
movie = pd.read_excel('./movies.xlsx',sheetname=1)#打开表格
data = movie.iloc[:,1:3]#数据获取
target = movie['分类情况']#数据获取
display(data,target)
#算法,训练
knn=KNeighborsClassifier(n_neighbors=5)
# 训练,算法就知道数据和目标值的关系
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()
# print(iris)
X=iris['data']
y=iris['target']
# print(X.shape)
# 结果是(150,4)
# 150代表150个样本,4代表4个属性,花萼长、宽;花瓣长、宽
# 将数据划分,一分为二:一部分用于训练,另一部分用于测试
# 将顺序打乱
index=np.arange(150)
# print(index)
np.random.shuffle(index)
# print(index)
# 150个数据,将打乱顺序的100个取出来,算法学习,留下50个使用算法预测(验证算法是否可靠)
# 应用到实际中,要获取现实中的数据,算法对数据进行分类——>上线:实时进行分类
X_train, X_test = X[index[:100]],X[index[100:]]
y_train,y_test = y[index[:100]],y[index[-50:]]
knn=KNeighborsClassifier(n_neighbors=5)
knn.fit(X_train,y_train)
y_=knn.predict(X_test)
# 对比,看算法,预测的真实的结果,是否对应。对应:大部分正确;否则:算法可能不对
print(y_)
print(y_test)
# 准确率
print((y_==y_test).sum()/50)
print(knn.score(X_test,y_test)) # 将方法进行封装
# 算法返回的结果,使用 bianliang_接收:约定俗成的变量命名guiz
proba_=knn.predict_proba(X_test)# 预测的是概率
print(proba_)

将概率转化成类别[返回最大值的索引]

proba_.argmax(axis=1)

sklearn ——Classification——knn相关推荐

  1. 【Python学习】 - sklearn学习 - KNN

    前言: 针对一个完整的机器学习框架目前还没有总结出来,所以目前只能总结每一个单独的算法.由于现在研究的重点是算法,所以对于数据的处理,数据的分析和可视化呈现,在现阶段并不进行展示(这样容易陷入纠结和浪 ...

  2. sklearn实现KNN分类算法

    sklearn实现KNN分类算法 Pyhthon Sklearn 机器学习库提供了 neighbors 模块,该模块下提供了 KNN 算法的常用方法,如下所示: 类方法 说明 KNeighborsCl ...

  3. 机器学习Sklearn实战——KNN算法

    KNN鸢尾花分类 import matplotlib.pyplot as plt from sklearn.neighbors import KNeighborsClassifier from skl ...

  4. python使用欧氏距离knn_python运用sklearn实现KNN分类算法

    KNN(K-Nearest-Neighbours Classiflication)分类算法,供大家参考,具体内容如下 最简单的分类算法,易于理解和实现 实现步骤:通过选取与该点距离最近的k个样本,在这 ...

  5. sklearn之KNN详解+GridSearchCV使用方法

    在了解了KNN的基本原理之后,我们需要学习如何在sklearn中调用KNN算法以及如何用GridSearchCV进行调参 首先导入必要的库以及我们所使用的数据集:iris 1 from sklearn ...

  6. sklearn 的 knn 用法

    knn原理: 离 x 点最近的 k 个点的出现最多的类别,做为 x 点的分类标识 最近:欧式距离,余弦距离,马氏距离(总样本数大于样本维数,样本间的距离增加协方差的逆,表示样本中不同特征的重要性不同) ...

  7. sklearn的knn模型学习

    参考: Scikit Learn - KNN Learning 1.6最近邻算法 https://scikit-learn.org/stable/user_guide.html 机器学习中的几种常用距 ...

  8. sklearn之KNN算法

    KNN算法 核心思想 未标记的数据样本,通过距离其最近的k个数据样本进行投票 算法原理 便利所有的样本点,计算每个样本点与待分类数据的距离,找出k个距离最近的点,统计每个类别的个数,投票数据最多的类别 ...

  9. sklearn的KNN文档中实例代码的注释

    链接是: http://scikit-learn.org/stable/modules/generated/sklearn.neighbors.NearestNeighbors.html#sklear ...

  10. sklearn中knn的各种用法总结

    knn四种选择 auto ball tree kd tree brute(暴力选择) KNeighborsClassifier(更常用,适用于均匀采样数据) RadiusNeighborsClassi ...

最新文章

  1. 前端入门(雨滴特效,css)
  2. 字体设置_word字体设置:如何为常用字体设置快捷键
  3. Java小结(二)——打印矩形和九九乘法表
  4. Core ML介绍 (Apple机器学习框架)
  5. [BZOJ3545][ONTAK2010]Peaks
  6. 福州PHP讲师招聘_“艺”起就业|招聘信息汇总
  7. linux查看wifi信号命令_使用Nmcli命令从Linux终端连接WiFi
  8. RECT JS 由浅入深
  9. 中国兽医牙科X射线发生器市场趋势报告、技术动态创新及市场预测
  10. 【lee】关于团队之间交流的一些意见和建议
  11. NLP情感分析笔记(六):Transformer情感分析
  12. javascript天生就具备类似c#中的委托功能
  13. 华为手机如何给应用加锁_华为手机正确防止应用后台运行被清理的操作方法
  14. 深度贝叶斯神经网络(Deep Bayesian Neural Networks)实现方法
  15. lenovo微型计算机如何拆t410,拆解 ThinkPad T410
  16. Excel表格合并两列数据且保留全部内容
  17. JavaWeb:掌握Session的使用,完善用户登录注册案例的功能
  18. MCU学习笔记_IO引脚复用和映射
  19. 我的世界mysql插件_MySQL Inventory Bridge — 跨服背包[1.7-1.15]【Bukkit】
  20. (不定期更新)驯服Ubuntu指南

热门文章

  1. FISCO BCOS(二)———配置及使用控制台
  2. 保姆级别mysql 基础练习题
  3. python开源代码app_十个基于Python的BBS论坛类开源web框架汇总(附源码地址)
  4. 内存中的 html 网页,网页制作使用html-webpack-plugin'入再内存中生成 html 页面插件...
  5. easyui tree复选框是否打钩状态_原创深度:如何利用OpenVINO工具套件监控机器操作员情绪状态(一)...
  6. raid5用户mbr还是gpt_系统硬盘gpt转换的操作方法
  7. Java进阶:Mybatis学习
  8. Java编程:贪心算法
  9. Javascript:各种定位clientX、pageY、screenX、offsetY区别
  10. 诚毅学院的计算机专业,诚毅学院计算机专业JAVA题目