tonglin0325的个人主页

机器学习——预测数值型数据:回归

线性回归

优点:结果易于理解,计算上不复杂

缺点:对非线性的数据拟合不好

适用数据类型:数值型和标称型数据

 

回归的目的就预测数值型的目标值。最直接的办法就是依据输入写一个目标值的计算公式。这个计算公式就是所谓的回归方程(regression equation),其中的参数就是回归系数,求这些回归系数的过程就是回归

  说道回归,一般都是指线性回归(linear regression)

给定由d个属性描述的示例 ,其中xi是x在第i个属性上的取值,线性模型试图学得一个通过属性组合来进行预测的函数,即

**  **

全文 >>

机器学习——非均衡分类问题

在机器学习的分类问题中,我们都假设所有类别的分类代价是一样的。但是事实上,不同分类的代价是不一样的,比如我们通过一个用于检测患病的系统来检测马匹是否能继续存活,如果我们把能存活的马匹检测成患病,那么这匹马可能就会被执行安乐死;如果我们把不能存活的马匹检测成健康,那么就会继续喂养这匹马。一个代价是错杀一只昂贵的动物,一个代价是继续喂养,很明显这两个代价是不一样的

1.性能度量

衡量模型泛化能力的评价标准,就是性能度量。除了基于错误率来衡量分类器任务的成功程度的。错误率指的是在所有测试样例中错分的样例比例。但是,这样却掩盖了样例如何被错分的事实。在机器学习中,有一个普遍试用的称为混淆矩阵(confusion matrix)的工具,可以帮助人们更好地了解分类的错误。

利用混淆矩阵就可以更好地理解分类中的错误了。如果矩阵中的非对角元素均为0,就会得到一个完美的分类器

2.正确率(Precision)、召回率(Recall)

正确率P = TP/(TP+FP),给出的是预测为正例的样本中的真正正例的比例。

召回率R = TP/(TP+FN),给出的是预测为正例的真实正例所有真实正例的比例。

3.ROC曲线

全文 >>

使用openssl生成自签名ssl证书

使用自签名的证书的网站默认不会被浏览器信任,使用浏览器带打开可能会弹出如下界面,需要在浏览器中点击继续前往或者添加例外

添加的例外可以在Firefox浏览器中如下界面中设置——隐私与安全——证书中进行查看

生成CA私钥

ca.key是证书颁发机构(Certificate Authority,CA)的私钥文件,CA私钥用于签署证书并保护证书颁发机构的安全性。

全文 >>

机器学习——AdaBoost元算法

当做重要决定时,我们可能会考虑吸取多个专家而不只是一个人的意见。机器学习处理问题也是这样,这就是元算法(meta-algorithm)背后的思路。

**  元算法对其他算法进行组合的一种方式,其中最流行的一种算法就是AdaBoost算法某些人认为AdaBoost是最好的监督学习的方法**,所以该方法是机器学习工具箱中最强有力的工具之一。

  集成学习或者元算法的一般结构是:先产生一组**“个体学习器”,再用某种策略将他们结合起来。个体学习器**通常是由一个现有的学习算法从训练数据产生。

  根据个体学习器的生成方式,目前的集成学习方法大致可分为两大类,即

  1.个体学习器间存在强依赖关系、必须串行生成的序列化方法,典型的代表是Boosting,其中AdaBoost就是Boosting的最流行的一个版本

  2.个体学习器间不存在强依赖关系、可同时生成的并行化方法,典型的代表是Bagging和“随机森林”(Random Forest)

 

AdaBoost

优点:泛化错误率低,易编码,可以应用在大部分分类器上,无参数调整

缺点:对离群点敏感

全文 >>

机器学习——支持向量机(SVM)之核函数(kernel)

对于线性不可分的数据集,可以利用核函数(kernel)将数据转换成易于分类器理解的形式。

  如下图,如果在x轴和y轴构成的坐标系中插入直线进行分类的话, 不能得到理想的结果,或许我们可以对圆中的数据进行某种形式的转换,从而得到某些新的变量来表示数据。在这种表示情况下,我们就更容易得到大于0或者小于0的测试结果。在这个例子中,我们将数据从一个特征空间转换到另一个特征空间,在新的空间下,我们可以很容易利用已有的工具对数据进行处理,将这个过程称之为从一个特征空间到另一个特征空间的映射。在通常情况下,这种映射会将低维特征空间映射到高维空间

  这种从某个特征空间到另一个特征空间的映射是通过核函数来。

  SVM优化中一个特别好的地方就是,所有的运算都可以写成内积(inner product)的形式。向量的内积指的就是两个向量相乘,之后得到单个标量或者数值。我们可以把内积运算替换成核函数,而并不必做简化处理。将内积替换成核函数的方法被称之为核技巧(kernel trick)或者核“变电”(kernel substation)

 

径向基核函数

径向基核函数是SVM中常用的一个核函数径向基函数是一个采用向量作为自变量的函数,能够基于向量距离运算输出一个标量

 

全文 >>

机器学习——支持向量机(SVM)之Platt SMO算法

**  Platt SMO算法是通过一个外循环来选择第一个alpha值**的,并且其选择过程会在两种方式之间进行交替:

一种方式是在所有数据集上进行单遍扫描,另一种方式则是在非边界alpha中实现单遍扫描。  

  所谓非边界alpha指的就是那些不等于边界0或者C的alpha值。对整个数据集的扫描相当容易,而实现非边界alpha值的扫描时,首先需要建立这些alpha值的列表,然后再对这个表进行遍历。同时,该步骤会跳过那些已知的不会改变的alpha值,即。

  在选择第一个alpha值后,算法会通过一个内循环来选择第二个alpha值。在优化过程中,会通过最大化步长的方式来获得第二个alpha值。在简化版SMO算发放中,我们会在选择j之后计算错误率Ej。但在这里,我们会建立一个全局的缓存用于保存误差值,并从中选择使得步长或者说Ei-Ej最大的alpha值

 

完整版的SMO代码及其注释:

全文 >>