11 2016 档案

摘要: 之前通过一个系列对支持向量机(以下简称SVM)算法的原理做了一个总结,本文从实践的角度对scikit-learn SVM算法库的使用做一个小结。scikit-learn SVM算法库封装了libsvm 和 liblinear 的实现,仅仅重写了算法了接口部分。 1. scikit-learn SVM阅读全文
posted @ 2016-11-30 16:47 刘建平Pinard 阅读(22697) | 评论 (14) 编辑
摘要: 支持向量机原理(一) 线性支持向量机 支持向量机原理(二) 线性支持向量机的软间隔最大化模型 支持向量机原理(三)线性不可分支持向量机与核函数 支持向量机原理(四)SMO算法原理 支持向量机原理(五)线性支持回归 在前四篇里面我们讲到了SVM的线性分类和非线性分类,以及在分类时用到的算法。这些都关注阅读全文
posted @ 2016-11-29 16:53 刘建平Pinard 阅读(14630) | 评论 (31) 编辑
摘要: 支持向量机原理(一) 线性支持向量机 支持向量机原理(二) 线性支持向量机的软间隔最大化模型 支持向量机原理(三)线性不可分支持向量机与核函数 支持向量机原理(四)SMO算法原理 支持向量机原理(五)线性支持回归 在SVM的前三篇里,我们优化的目标函数最终都是一个关于$\alpha$向量的函数。而怎阅读全文
posted @ 2016-11-29 00:11 刘建平Pinard 阅读(33235) | 评论 (101) 编辑
摘要: 支持向量机原理(一) 线性支持向量机 支持向量机原理(二) 线性支持向量机的软间隔最大化模型 支持向量机原理(三)线性不可分支持向量机与核函数 支持向量机原理(四)SMO算法原理 支持向量机原理(五)线性支持回归 在前面两篇我们讲到了线性可分SVM的硬间隔最大化和软间隔最大化的算法,它们对线性可分的阅读全文
posted @ 2016-11-26 11:33 刘建平Pinard 阅读(13173) | 评论 (19) 编辑
摘要: 支持向量机原理(一) 线性支持向量机 支持向量机原理(二) 线性支持向量机的软间隔最大化模型 支持向量机原理(三)线性不可分支持向量机与核函数 支持向量机原理(四)SMO算法原理 支持向量机原理(五)线性支持回归 在支持向量机原理(一) 线性支持向量机中,我们对线性可分SVM的模型和损失函数优化做了阅读全文
posted @ 2016-11-25 14:21 刘建平Pinard 阅读(15092) | 评论 (45) 编辑
摘要: 支持向量机原理(一) 线性支持向量机 支持向量机原理(二) 线性支持向量机的软间隔最大化模型 支持向量机原理(三)线性不可分支持向量机与核函数 支持向量机原理(四)SMO算法原理 支持向量机原理(五)线性支持回归 支持向量机(Support Vecor Machine,以下简称SVM)虽然诞生只有短阅读全文
posted @ 2016-11-24 21:33 刘建平Pinard 阅读(39071) | 评论 (55) 编辑
摘要: 最大熵模型(maximum entropy model, MaxEnt)也是很典型的分类算法了,它和逻辑回归类似,都是属于对数线性分类模型。在损失函数优化的过程中,使用了和支持向量机类似的凸优化技术。而对熵的使用,让我们想起了决策树算法中的ID3和C4.5算法。理解了最大熵模型,对逻辑回归,支持向量阅读全文
posted @ 2016-11-23 20:33 刘建平Pinard 阅读(17596) | 评论 (48) 编辑
摘要: 之前在朴素贝叶斯算法原理小结这篇文章中,对朴素贝叶斯分类算法的原理做了一个总结。这里我们就从实战的角度来看朴素贝叶斯类库。重点讲述scikit-learn 朴素贝叶斯类库的使用要点和参数选择。 1. scikit-learn 朴素贝叶斯类库概述 朴素贝叶斯是一类比较简单的算法,scikit-lear阅读全文
posted @ 2016-11-17 17:03 刘建平Pinard 阅读(18681) | 评论 (17) 编辑
摘要: 在所有的机器学习分类算法中,朴素贝叶斯和其他绝大多数的分类算法都不同。对于大多数的分类算法,比如决策树,KNN,逻辑回归,支持向量机等,他们都是判别方法,也就是直接学习出特征输出Y和特征X之间的关系,要么是决策函数$Y=f(X)$,要么是条件分布$P(Y|X)$。但是朴素贝叶斯却是生成方法,也就是直阅读全文
posted @ 2016-11-16 17:25 刘建平Pinard 阅读(46579) | 评论 (55) 编辑
摘要: 在K近邻法(KNN)原理小结这篇文章,我们讨论了KNN的原理和优缺点,这里我们就从实践出发,对scikit-learn 中KNN相关的类库使用做一个小结。主要关注于类库调参时的一个经验总结。 1. scikit-learn 中KNN相关的类库概述 在scikit-learn 中,与近邻法这一大类相关阅读全文
posted @ 2016-11-15 16:29 刘建平Pinard 阅读(14395) | 评论 (6) 编辑
摘要: K近邻法(k-nearest neighbors,KNN)是一种很基本的机器学习方法了,在我们平常的生活中也会不自主的应用。比如,我们判断一个人的人品,只需要观察他来往最密切的几个人的人品好坏就可以得出了。这里就运用了KNN的思想。KNN方法既可以做分类,也可以做回归,这点和决策树算法相同。 KNN阅读全文
posted @ 2016-11-14 20:13 刘建平Pinard 阅读(25039) | 评论 (60) 编辑
摘要: 之前对决策树的算法原理做了总结,包括决策树算法原理(上)和决策树算法原理(下)。今天就从实践的角度来介绍决策树算法,主要是讲解使用scikit-learn来跑决策树算法,结果的可视化以及一些参数调参的关键点。 1. scikit-learn决策树算法类库介绍 scikit-learn决策树算法类库内阅读全文
posted @ 2016-11-12 14:28 刘建平Pinard 阅读(66934) | 评论 (74) 编辑
摘要: 在决策树算法原理(上)这篇里,我们讲到了决策树里ID3算法,和ID3算法的改进版C4.5算法。对于C4.5算法,我们也提到了它的不足,比如模型是用较为复杂的熵来度量,使用了相对较为复杂的多叉树,只能处理分类不能处理回归等。对于这些问题, CART算法大部分做了改进。CART算法也就是我们下面的重点了阅读全文
posted @ 2016-11-11 16:10 刘建平Pinard 阅读(43290) | 评论 (147) 编辑
摘要: 决策树算法在机器学习中算是很经典的一个算法系列了。它既可以作为分类算法,也可以作为回归算法,同时也特别适合集成学习比如随机森林。本文就对决策树算法原理做一个总结,上篇对ID3, C4.5的算法思想做了总结,下篇重点对CART算法做一个详细的介绍。选择CART做重点介绍的原因是scikit-learn阅读全文
posted @ 2016-11-10 15:54 刘建平Pinard 阅读(47830) | 评论 (64) 编辑
摘要: 在学习机器学习算法的过程中,我们经常需要数据来验证算法,调试参数。但是找到一组十分合适某种特定算法类型的数据样本却不那么容易。还好numpy, scikit-learn都提供了随机数据生成的功能,我们可以自己生成适合某一种模型的数据,用随机数据来做清洗,归一化,转换,然后选择模型与算法做拟合和预测。阅读全文
posted @ 2016-11-09 22:03 刘建平Pinard 阅读(12269) | 评论 (7) 编辑
摘要: 感知机可以说是最古老的分类方法之一了,在1957年就已经提出。今天看来它的分类模型在大多数时候泛化能力不强,但是它的原理却值得好好研究。因为研究透了感知机模型,学习支持向量机的话会降低不少难度。同时如果研究透了感知机模型,再学习神经网络,深度学习,也是一个很好的起点。这里对感知机的原理做一个小结。 阅读全文
posted @ 2016-11-08 16:23 刘建平Pinard 阅读(16570) | 评论 (63) 编辑
摘要: 最近参与了了一个日志和告警的数据挖掘项目,里面用到的一些思路在这里和大家做一个分享。 项目的需求是收集的客户系统一个月300G左右的的日志和告警数据做一个整理,主要是归类(Grouping)和关联(Correlation),从而得到告警和日志的一些统计关系,这些统计结果可以给一线支持人员参考。 得到阅读全文
posted @ 2016-11-07 17:23 刘建平Pinard 阅读(7989) | 评论 (13) 编辑
摘要: 之前在逻辑回归原理小结这篇文章中,对逻辑回归的原理做了小结。这里接着对scikit-learn中逻辑回归类库的我的使用经验做一个总结。重点讲述调参中要注意的事项。 1. 概述 在scikit-learn中,与逻辑回归有关的主要是这3个类。LogisticRegression, LogisticReg阅读全文
posted @ 2016-11-06 19:41 刘建平Pinard 阅读(23574) | 评论 (37) 编辑
摘要: 逻辑回归是一个分类算法,它可以处理二元分类以及多元分类。虽然它名字里面有“回归”两个字,却不是一个回归算法。那为什么有“回归”这个误导性的词呢?个人认为,虽然逻辑回归是分类模型,但是它的原理里面却残留着回归模型的影子,本文对逻辑回归原理做一个总结。 1. 从线性回归到逻辑回归 我们知道,线性回归的模阅读全文
posted @ 2016-11-04 21:22 刘建平Pinard 阅读(34461) | 评论 (91) 编辑
摘要: scikit-learn对于线性回归提供了比较多的类库,这些类库都可以用来做线性回归分析,本文就对这些类库的使用做一个总结,重点讲述这些线性回归算法库的不同和各自的使用场景。 线性回归的目的是要得到输出向量\(\mathbf{Y}\)和输入特征\(\mathbf{X}\)之间的线性关系,求出线性回归阅读全文
posted @ 2016-11-03 23:41 刘建平Pinard 阅读(13739) | 评论 (17) 编辑
摘要: 本文将用一个例子来讲述怎么用scikit-learn和pandas来学习Ridge回归。 1. Ridge回归的损失函数 在我的另外一遍讲线性回归的文章中,对Ridge回归做了一些介绍,以及什么时候适合用 Ridge回归。如果对什么是Ridge回归还完全不清楚的建议阅读我这篇文章。 线性回归原理小结阅读全文
posted @ 2016-11-02 16:34 刘建平Pinard 阅读(9346) | 评论 (31) 编辑
摘要: 前面的文章对线性回归做了一个小结,文章在这: 线性回归原理小结。里面对线程回归的正则化也做了一个初步的介绍。提到了线程回归的L2正则化-Ridge回归,以及线程回归的L1正则化-Lasso回归。但是对于Lasso回归的解法没有提及,本文是对该文的补充和扩展。以下都用矩阵法表示,如果对于矩阵分析不熟悉阅读全文
posted @ 2016-11-01 17:29 刘建平Pinard 阅读(28507) | 评论 (36) 编辑