最近失业了。。。sad

休息了一个月,然后就想着找工作的事情。浏览了一些职位的JD,发现上面都会写了解机器学习算法模型,掌握回归、分类、聚类balabala。这就让我有点蛋疼了,这些在之前工作上都没怎么用,所以早忘记了。emmm,那现在开始学吧。


今天学习的是分类模型里面的KNN算法,我觉得也不是很难,在python中可以简单的实现这个算法。当然,在学习这个模型的时候我也会考虑实际工作场景,会有不一样的发现。

kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。

在百度百科上查到KNN算法的解释,所以这里可以明白决定算法结果的其实是预测点到各个类别的距离。这里的距离可以用绝对值距离或者距离差值平方和的开平方,后者用的最多。

Ps:我觉得KNN算法虽然简单但是在实际中用的比较多,可以解决很多业务上面的分类问题,尤其是在做用户行为这一块,可以对新项目的效果做评估。不过缺点就是计算量太大,所以用之前先对数据量做一个估算。

这里代码演示的项目就用鸾尾花项目。

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import GridSearchCV

    #1.获取数据iris=load_iris()#2.划分数据x_train,x_test,y_train,y_test=train_test_split(iris.data,iris.target,random_state=6)#3.标准化sc = StandardScaler()x_train = sc.fit_transform(x_train)x_test = sc.transform(x_test)#4.knn算法预估器knn = KNeighborsClassifier(n_neighbors=3)#加入网格与交叉验证param_dict = {'n_neighbors':[1,3,5,7,9,11]}knn = GridSearchCV(knn,param_grid=param_dict,cv=10)knn.fit(x_train,y_train)#5.模型评估y_predict = knn.predict(x_test)print("y_predict:n",y_predict)score = knn.score(x_test,y_test)print("准确率:n",score)print("最佳参数:n",knn.best_params_)print("最佳结果:n",knn.best_score_)print("最佳估计器:n",knn.best_estimator_)

代码很简单,流程就五点。在第四步knn算法预估器中加入了性能调参,用的是网格搜索法。可以看到最佳参数是n_neighbord=5时,准确率可以从94%提升到97%(理想化)。

模型代码本身不复杂,不过要考虑的问题在于如何应用到实践中。

1、原始数据不会这么简单,缺失值、异常值肯定是存在的

2、原始数据特征值也需要进行处理

3、网格搜索法比较慢,对于大数据比较耗时,占用资源

4、如何在业务场景中运用,预测和验证两方面考虑


今天的学习就到这里结束,开始看下一个模型算法。

https://github.com/Nicoals-chen/Python-nicolas/blob/master/k%E8%BF%91%E9%82%BB%E7%AE%97%E6%B3%95.ipynb​github.com

对KNN算法做了一些修改,加入了pipeline知识点,完善项目代码。

knn聚类还是分类_数据分析基本算法模型之KNN算法相关推荐

  1. knn人脸识别判断_测试使用K-最近邻(kNN)算法的30个问题

    作者|SUNIL RAY 编译|Flin 来源|analyticsvidhya 介绍 如果你要问我机器学习中2种最直观的算法--那就是k最近邻(kNN)和基于树的算法.两者都易于理解,易于解释,并且很 ...

  2. 机器学习第9天:K-邻近算法模型(KNN)

    文章目录 一.前言 二.基本概念 三.代码实现 1. 问题简介 2.导入数据 3.将数据集分成训练集和测试集 4.K-邻近算法模型 5.结果预测 6.模型评分 一.前言 语言环境:Python3.6. ...

  3. 数学建模算法模型--蚁群算法

    有关蚁群算法学习资料分享: 链接:https://pan.baidu.com/s/10rY9OYN0ADfhKDXOK0R4fA?pwd=v09z  提取码:v09z 蚁群算法(Ant Colony ...

  4. em算法怎么对应原有分类_[PRML]序列数据 HMM维特比算法及扩展

    序列数据相关文章:1.马尔可夫模型2.隐马尔可夫模型简介3.HMM最大似然4.HMM前向后向算法5.HMM和积算法与尺度因子 1 维特比算法 在隐马尔可夫模型的许多应用中,潜变量有一些有意义的解释,因 ...

  5. som神经网络聚类简单例子_神经网络学习及其模型

    1.神经元模型 历史上,科学家一直希望模拟人的大脑,造出可以思考的机器.人为什么能够思考?科学家发现,原因在于人体的神经网络. 神经网络最基本的成分是神经元模型 其中,W表示的是向量,代表的是权重,函 ...

  6. 模型算法_详解SVM模型之SMO算法

    今天是机器学习专题第35篇文章,我们继续SVM模型的原理,今天我们来讲解的是SMO算法. 公式回顾 在之前的文章当中我们对硬间隔以及软间隔问题都进行了分析和公式推导,我们发现软间隔和硬间隔的形式非常接 ...

  7. 人工智能算法模型--Alpha-Beta剪枝算法学习笔记

    ⬜⬜⬜ 

  8. KNN算法——kd-tree、KNN莺尾花分类sklearn实现实例

    KNN算法--kd-tree.KNN莺尾花分类sklearn实现实例 KNN算法--kd-tree.KNN莺尾花分类sklearn实现实例 1.kd-tree 2.kd-tree的构建 3.kd-tr ...

  9. 【计算理论】计算复杂性 ( 阶段总结 | 计算理论内容概览 | 计算问题的有效性 | 语言与算法模型 | 可计算性与可判定性 | 可判定性与有效性 | 语言分类 ) ★

    文章目录 一.计算理论内容概览 二.计算问题的 有效性 三.语言 与 算法模型 四.可计算性 与 可判定性 五.可判定性 与 有效性 六.语言分类 一.计算理论内容概览 计算理论分为 形式语言与自动机 ...

最新文章

  1. ASP.NET MVC 生成简单的 xml 权限结构
  2. Redhat5.4 系统上部署 MooseFS分布式文件系统的部署
  3. 广州谋定营养功能性早餐-丰收节交易会·李喜贵:系统工程
  4. gbq6的文件能转换成gbq5_PPT文件转换成PDF怎么转?这些方法能实现快速转换
  5. java制作图形界面数据库_java图形界面以及链接数据库
  6. 光流 速度_科学家研制新型“时空波包”激光束 能够以相同速度穿越不同的介质...
  7. Python3.7下载与安装pygame
  8. 单片机基础学-按键篇
  9. 计算机算法基础:分治法
  10. 广告传媒实际税负怎么计算_增值税的理论税负和实际计算公式
  11. 缤纷彩色文字广告代码,文字广告代码美化版,给网站添加文字广告教程
  12. 【空气质量数据分析专题四】超标状况分析
  13. PyG教程(2):图数据
  14. PDPS汉化包安装与语言界面切换操作
  15. ae制h5文字动画_绝对干货!H5动画制作方法全揭秘
  16. <script>alert(1)</script>怎么在页面显示且不出现功能
  17. 什么是JavaBean、bean?
  18. 计算机如何实现开根号?
  19. Windows 10 下安装gcc
  20. 信息收集——系统识别及版本确定

热门文章

  1. 中科院微生物所王军课题组建立靶向RNA的病原检测新方法mtNGS和mtTGS
  2. Nature综述:微生物沿着寄生-共生连续体进化和转变!
  3. WIRW:淡水分子微生物生态学综述
  4. 宏基因组学习交流4群成立
  5. antiSMASH数据库:微生物次生代谢物合成基因组簇查询和预测
  6. Python中pandas检查dataframe中是否包含某个字段、或者数据列实战、检查dataframe中是否包含某个字段集合
  7. R语言大小写转换函数(tolower, toupper, casefold,chartr)实战
  8. 通过mrtrix3进行概率纤维追踪+核磁共振影像数据处理
  9. python元组(tuple)使用示例+常用方法+列表(list)和元组(tuple)的异同?
  10. 独立成分分析ICA、因子分析、LDA降维、NMF非负矩阵分解