监督学习对于有标签的特定数据集(训练集)是非常有效的,但是它需要对于其他的距离进行预测。
无监督学习对于在给定未标记的数据集(目标没有提前指定)上发现潜在关系是非常有用的。
强化学习介于这两者之间—它针对每次预测步骤(或行动)会有某种形式的反馈,但是没有明确的标记或者错误信息。本文主要介绍有关监督学习和无监督学习的10种算法。
1. 决策树(decision trees)
决定:分支数目,条件,停止,base hypothesis
- CART
一个二元分类树&回传一个最佳常数&分类通过purifying
optimal constant:regression 错误是平方错误,选择平均数。
classification 选择大多数。
计算impurity 使用Gini
停止条件:
y都相同or x都相同(待分类)
2. 朴素贝叶斯分类(Naive Bayesian classification)
基础思想:求解每个待分类项下各个类别的出现概率
3.最小二乘法
4.逻辑回归
从问题出发,想得到一个概率,使用logistic function作为hypotheses,error是通过最大似然估计得到的cross-entropy,想要最小化error,用西塔来平均,通过梯度下降来得到solution。
是否有心脏病?这是一个二元分类问题,classification err是我在意的
心脏病的几率是多少?
target function f(x)=P(+1|x)属于[0,1],对每个x,得到一个分数,通过logistic function得到一个概率。
光滑的,单调的,s型的。
三个linear models:
logistic regression error function:
cost function
从极大似然法中得到:
梯度i下降条件:平滑,可微,二次可微,convex。
w更新:
logistic regression algorithm
最后只需要约等于零,或者足够多次迭代。
多分类:one-versus-all,缺点是unbalanced,优点是可应用与任何logistic regression-like approaches。
读了博客的几点思考:
1,LR模型属于概率性判别模型。大部分分类算法都是生成模型,求解P(C|x),这是一个后验概率,基于贝叶斯公式可以计算得到。 P(A|B)=P(AB)/P(B)。分类算法将输入空间划分为很多不相交的区域,分隔面即判别函数,从判别函数进行分类生成模型,最终也是为了得到判别函数。
LR并不知道数据的具体分布,直接将判别函数(分类超平面)求解出来。
5.支持向量机
support vector machine hypothesis:
SVM是一个大间距分类器。decision boundary:线性可分。当C非常大时,那木打比较小,说明正则话的影响比较小,容易过拟合。
推导过程
6.ensemble
7.聚类
-
Kmeans
K-means algorithm
随机选择几个样本作为初始均值向量,计算样本与各均值向量的距离,根据最近的向量标记簇。
结束后更新新的均值向量。
知道当前的均值向量不再更新
8.PCA
9.SVD
提取矩阵向量。
10.独立成分分析ICA
提升树模型
- GBDT
gradient boosting