1、 生成学习算法
例:对恶性肿瘤和良性肿瘤的分类
除了寻找一个将两类数据区分的直线外,还可以用如下方法:
1) 遍历训练集,找到所有恶性肿瘤样本,直接对恶性肿瘤的特征建模;同理,对良性肿瘤建模。
2) 对一个新的样本分类时,即有一个新的病人时,要判断其是恶性还是良性,用该样本分别匹配恶性肿瘤模型和良性肿瘤模型,看哪个模型匹配的更好,预测属于恶性还是良性。
这种方法就是生成学习算法。
两种学习算法的定义:
1) 判别学习算法:
- 直接学习p(y|x),即给定输入特征,输出所属的类
- 或学习得到一个假设hθ(x),直接输出0或1
2) 生成学习算法:
- 对p(x|y)进行建模,p(x|y)表示在给定所属的类的情况下,显示某种特征的概率。处于技术上的考虑,也会对p(y)进行建模。
- p(x|y)中的x表示一个生成模型对样本特征建立概率模型,y表示在给定样本所属类的条件下
例:在上例中,假定一个肿瘤情况y为恶性和良性,生成模型会对该条件下的肿瘤症状x的概率分布进行建模
- 对p(x|y)和p(y)建模后,根据贝叶斯公式p(y|x) = p(xy)/p(x) = p(x|y)p(y)/p(x),可以计算:p(y=1|x) = p(x|y=1)p(y=1)/p(x),其中,p(x) = p(x|y=0)p(y=0) + p(x|y=1)p(y=1)
参考:
http://blog.csdn.net/andrewseu/article/details/46789121
http://blog.csdn.net/xiahouzuoxin/article/details/45223519
http://blog.csdn.net/tanhongguang1/article/details/45016421
http://blog.csdn.net/wsj998689aa/article/details/40303561
http://blog.csdn.net/u013802188/article/details/40402013
1. C++标准模板库从入门到精通
2.跟老菜鸟学C++
3. 跟老菜鸟学python
4. 在VC2015里学会使用tinyxml库
5. 在Windows下SVN的版本管理与实战
6.Visual Studio 2015开发C++程序的基本使用