十个基础算法

监督学习对于有标签的特定数据集(训练集)是非常有效的,但是它需要对于其他的距离进行预测。

无监督学习对于在给定未标记的数据集(目标没有提前指定)上发现潜在关系是非常有用的。

强化学习介于这两者之间—它针对每次预测步骤(或行动)会有某种形式的反馈,但是没有明确的标记或者错误信息。本文主要介绍有关监督学习和无监督学习的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

你可能感兴趣的:(十个基础算法)