一、写在前面

本系列是对之前机器学习笔记的一个总结,这里只针对最基础的经典机器学习算法,对其本身的要点进行笔记总结,具体到算法的详细过程可以参见其他参考资料和书籍,这里顺便推荐一下Machine Learning in Action一书和Ng的公开课,当然仅有这些是远远不够的,更深入的研究分析可以参见其他国外的论文及站点,此处不再一一列举。机器学习更多的是建模应用,这里仅是一个概要总结,并归纳分析各种算法优缺点,这些都是要了如指掌并且非常熟悉的。

关于机器学习:

基本上目前互联网公司的机器学习/数据挖掘的算法岗位都会涉及到这些东西,而对于计算机方向的研究生都会接触这些。对于机器学习,仅仅懂得这些算法的基本思想和大致流程远远不够,尤其对于工业界的应用层面,关系到应用业务课题,更多要求的是非常熟悉如何去使用它,什么场合使用,算法优缺点,调参经验等等。

机器学习算法总体分类:

1.监督学习:分类、回归

2.无监督学习:聚类、密度估计、降维

3.其他

列举一下机器学习经典算法:

k近邻算法(kNN)

决策树C4.5、ID3、CART树回归(9章)

迭代决策树GBRT(渐进梯度回归树):决策树的变体,boosting,残差训练,串行算法,每棵树用前一棵树的残差来训练

RF随机森林:主要思想是bagging并行算法,用很多弱模型组合出一种强模型

朴素贝叶斯

logistic回归(实质是分类算法)

线性回归:1.线性回归LR、2.缩减系数:岭回归、lasso、前向逐步回归(这才是真正回归)

支持向量机SVM: SMO、核函数处理高维数据

Boosting:Adaboosting

非均衡分类问题

1.训练时正例数据与反例数据不相等、相差很大

2.衡量分类器成功程度的指标:错误率、正确率、召回率、ROC曲线

3.处理非均衡问题的方法:数据抽样可以对分类器训练数据进行改造:欠抽样(删除样例)过抽样(复制样例)

聚类算法——K均值算法(K-means)

********************************************************************

聚类:1.基于划分的聚类:k-means、k-medoids(每个类别找一个样本来代表)、Clarans

2.基于层次的聚类:(1)自底向上的凝聚方法,比如Agnes

(2)自上而下的分裂方法,比如Diana

3.基于密度的聚类:Obsacn、Optics、Birch(CF-Tree)、Cure

4.基于网格的方法:Sting、WaveCluster

5.基于模型的聚类:EM、SOM、Cobweb

********************************************************************

k-means:优点:.容易实现,……

缺点:.容易局部收敛……

关联规则分析(一):Apriori

关联规则挖掘(二):频繁模式树FP-growth

推荐系统

1.基于内容的实现:KNN等

2.基于协同滤波(CF)实现:SVD → pLSA(从LSA发展而来,由SVD实现)、LDA、GDBT

pLSA

LDA主题模型

Regularization(正则化)

异常检测

EM算法、HMM(隐马尔科夫模型)



二、kNN算法

1.算法流程

(1)计算抑制类别数据集中的点与当前点的距离(欧氏距离、马氏距离等)

(2) 按照距离递增依次排序

(3) 选取当前点距离最小的k个点

(4) 确定前k个点所在类别出现频率

(5) 返回前k个点出现频率最高的类别作为当前点的预测分类

注意:

l  关于k值个数的选择,其取决于数据。一般地,在分类时,较大k值可以减小噪声的影响,但会使类别界限变得模糊。

Ø  好的k值可以通过各种启发式技术来获取(eg.交叉验证)

Ø 
噪声和非相关性特征向量的存在会使k近邻算法的准确性减小

l  近邻算法具有较强的一致性结果,随着数据趋于无线,算法的错误率不会超过贝叶斯算法错误率的2倍。对于一些好的k值,k近邻保证错误率不会超过贝叶斯理论误差率。

l  关于流程中距离计算:欧式距离和马氏距离

2.优缺点、数据类型

优点:精度高,对异常值不敏感,无数据输入假定。

1.可以用作分类回归

2.可以用作线性分类非线性分类

3.训练时间复杂度O(n)

4.准确度高,对数据没有假设,对离群点outliner不敏感

缺点:计算复杂度高,空间复杂度高

1.计算量大

2.样本不均衡问题(即:有时类样本很多,有时类样本很少)

3.需要大量内存

数据类型:数值型、标称型

3.应用场景

分类、回归。

线性分类、非线性分类

【机器学习】k近邻算法(kNN)的更多相关文章

  1. k近邻算法(KNN)

    k近邻算法(KNN) 定义:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别. from sklearn.model_selection ...

  2. 机器学习(四) 分类算法--K近邻算法 KNN (上)

    一.K近邻算法基础 KNN------- K近邻算法--------K-Nearest Neighbors 思想极度简单 应用数学知识少 (近乎为零) 效果好(缺点?) 可以解释机器学习算法使用过程中 ...

  3. 机器学习(四) 机器学习(四) 分类算法--K近邻算法 KNN (下)

    六.网格搜索与 K 邻近算法中更多的超参数 七.数据归一化 Feature Scaling 解决方案:将所有的数据映射到同一尺度 八.scikit-learn 中的 Scaler preprocess ...

  4. 一看就懂的K近邻算法(KNN),K-D树,并实现手写数字识别!

    1. 什么是KNN 1.1 KNN的通俗解释 何谓K近邻算法,即K-Nearest Neighbor algorithm,简称KNN算法,单从名字来猜想,可以简单粗暴的认为是:K个最近的邻居,当K=1 ...

  5. [机器学习] k近邻算法

    算是机器学习中最简单的算法了,顾名思义是看k个近邻的类别,测试点的类别判断为k近邻里某一类点最多的,少数服从多数,要点摘录: 1. 关键参数:k值 && 距离计算方式 &&am ...

  6. Python3入门机器学习 - k近邻算法

    邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一.所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代 ...

  7. 机器学习--K近邻 (KNN)算法的原理及优缺点

    一.KNN算法原理 K近邻法(k-nearst neighbors,KNN)是一种很基本的机器学习方法. 它的基本思想是: 在训练集中数据和标签已知的情况下,输入测试数据,将测试数据的特征与训练集中对 ...

  8. 《机器学习实战》---第二章 k近邻算法 kNN

    下面的代码是在python3中运行, # -*- coding: utf-8 -*- """ Created on Tue Jul 3 17:29:27 2018 @au ...

  9. k近邻算法(knn)的c语言实现

    最近在看knn算法,顺便敲敲代码. knn属于数据挖掘的分类算法.基本思想是在距离空间里,如果一个样本的最接近的k个邻居里,绝大多数属于某个类别,则该样本也属于这个类别.俗话叫,"随大流&q ...

  10. 最基础的分类算法-k近邻算法 kNN简介及Jupyter基础实现及Python实现

    k-Nearest Neighbors简介 对于该图来说,x轴对应的是肿瘤的大小,y轴对应的是时间,蓝色样本表示恶性肿瘤,红色样本表示良性肿瘤,我们先假设k=3,这个k先不考虑怎么得到,先假设这个k是 ...

随机推荐

  1. iOS开发 两个内存错误的一般处理方法

    本文转载至 http://blog.sina.com.cn/s/blog_a843a8850101dxlj.html 由于iOS5.0之前没有自动应用计数机制,也没有Java那样的垃圾回收功能.我们都 ...

  2. JS中try.. catch..的用法

    try 测试代码块的错误. catch 语句处理错误. throw 创建并跑出错误. try { //在这里运行代码 抛出错误 } catch(err) { //在这里处理错误 } 下面是一个实例: ...

  3. 【BZOJ4966】总统选举 线段树+随机化

    [BZOJ4966]总统选举 Description 黑恶势力的反攻计划被小C成功摧毁,黑恶势力只好投降.秋之国的人民解放了,举国欢庆.此时,原秋之国总统因没能守护好国土,申请辞职,并请秋之国人民的大 ...

  4. EasyNVR RTSP摄像机转HLS直播服务器中使用Onvif协议控制预置位

    EasyNVR支持预置位控制,包括转到指定预置位,设置指定预置位,删除指定预置位 预置位在安防领域有较为普遍的应用,可以进行很多既定位置的跳转,很方便 之前我们说过如何用Onvif协议进行设备的发现, ...

  5. MaLoc: a practical magnetic fingerprinting approach to indoor localization using smartphones

    https://www.indooratlas.com/ MaLoc: a practical magnetic fingerprinting approach to indoor localizat ...

  6. php xmlrpc使用示例

    xmlrpc 远程过程调用, 使用xml文本方式传输数据. soap协议比xmlrpc复杂并强大. 1.修改 php.ini,开启 xmlrpc 扩展 2.rpc_client.php <?ph ...

  7. 中文WebFont探索

    本文主要讲中文webFont的相关知识,包含了业界现状.WebFont优势.实现方案等. 一 业界使用WebFont现状 1.1 英文WebFont使用现状 英文版已使用非常广泛.比较有名的字体库:G ...

  8. CSS各种度量单位----px、em、%、rem、vh/vw、vmin/vmax

    本文主要讲下CSS中各类度量单位的意思和区别. 开发中最常用到的css单位是px.em.%.随着css3的出现,带来了更多的度量单位,这些单位为响应式开发,带来很大的好处.各种单位的浏览器兼容性可以去 ...

  9. Pandas一些小技巧

    Pandas有一些不频繁使用容易忘记的小技巧 1.将不同Dataframe写在一个Excel的不同Sheet,或添加到已有Excel的不同Sheet(同名Sheet会覆盖) from pandas i ...

  10. linux 下ftp的安装配置 图文教程

    0.安装ftp的前置条件是关掉SElinux # vi /etc/selinux/config 修改 SELINUX=” disabled ” ,重启服务器.若相同,则跳过此步骤. 1. 可先查看是否 ...