常用算法备忘
来源:互联网 发布:工程预算清单软件 编辑:程序博客网 时间:2024/04/29 15:38
from http://blog.csdn.net/a936676463/article/details/8573622
k-最近邻法(KNN与KMeans)
好资源 http://coolshell.cn/articles/7779.html
最近邻法基于类比学习,它既可以用于聚类,也可以用于分类
K-means是基于最近邻法的聚类方法。算法描述如下:
输入:k, data[n];
(1) 选择k个初始中心点,例如c[0]=data[0],…c[k-1]=data[k-1];
(2) 对于data[0]….data[n], 分别与c[0]…c[k-1]比较,假定与c[i]差值最少,就标记为i;
(3) 对于所有标记为i点,重新计算c[i]={ 所有标记为i的data[j]之和}/标记为i的个数;
(4) 重复(2)(3),直到所有c[i]值的变化小于给定阈值。
该算法的最大优势在于简洁和快速。算法的关键在于初始中心的选择和距离公式。
KNN算法是基于最近邻法的分类方法。算法描述如下
输入:待分类未知类别案例项目。已知类别案例集合D,其中包含j个已知类别的案例
输出:项目可能的类别
依公式计算Item与D1、D2......Dj之相似度。得到sim(Item,D1)、Sim(Item,D2).....、Sim(Item,Dj).
将Sim(Item,D1)、Sim(Item,D2).......Sim(Item,Dj)排序,若是超过相似度门槛t则放入邻居案例集合NN。
自邻居案例集合NN中取出前k名,依多数决,得到Item可能类别。
贝叶斯分类
贝叶斯分类是一种统计学分类方法,它利用已知样本的分类统计情况预测未知样本的分类。
p(H|X)=p(X|H)p(H)/p(X)
朴素贝叶斯分类工作过程:
1)每个数据样本用一个n维特征向量X={x1,x2,......xn}表示,分别描述对n个属性A1,A2.....An样本的n个度量。
2)假定有m个类C1,C2....Cm。给定一个未知的数据样本X,分类法将预测X属于具有最高后验概率的类。即,朴素贝叶斯分类将未知的样本分配给类ci,当且仅当
p(Ci|X)>p(Cj|X)
p(ci|x)=p(x|ci)p(ci)/p(x)
3)由于P(X)对于所有类为常数,只需要p(X|Ci)最大即可。如果类的先验概率未知,则通常假定这些类是等概率的,即p(c1)=p(c2)=...=p(cm)。并据此只对p(ci|x)最大化。否则,最大化p(x|ci)p(ci).
p(ci)可以用p(ci)=si/s来计算。
4)给定具有许多属性的数据集,计算p(x|ci)的开销可能非常大。为降低计算p(x|ci)的开销,可以做类条件独立的朴素假定。假定属性值相互条件独立,即在属性间,不存在依赖关系,这样,
p(x|ci)=p(x1|ci)*p(x2|ci)....*p(xn|ci)
概率p(x|ci),p(x2|ci)....p(xn|ci)可以由训练样本估值
5)为对未知样本X分类,对每个类Ci,计算P(X|Ci)p(Ci).样本X被指派到该值最大的类。
- 常用算法备忘
- 总结一些常用的排序算法,备忘
- 常用备忘
- 算法:备忘
- Oracle常用脚本备忘
- Oracle常用脚本备忘
- javascript常用备忘
- asp.net 常用备忘
- php_mysql常用指令备忘
- javascript常用备忘
- 常用方法备忘
- 数据库常用函数备忘
- matlab常用操作备忘
- 常用CSS备忘
- PostgreSQL 常用备忘
- SQL常用语句备忘
- vs2005 常用快捷键(备忘)
- CSS 常用设置备忘
- JavaScript中常用的函数以及基础写法汇总
- linux shell 排序
- WIN8 64位下配置ORACLE客户端
- FCC认证
- Unity里的人物驱动/换装备/换武器/换衣服/动画重定位
- 常用算法备忘
- 自适应网页设计的方法
- 润乾——静态统计图类型
- 创业者手册:教你如何构建伟大的企业
- 润乾——动态统计图类型
- c++对象切割(Object Slicing)
- Cocos2d-x教程(10)-CCProgressTimer实现页面加载进度条效果
- git错误:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED
- pthread_cancel() NDK不支持