机器学习笔记
文章平均质量分 94
飞翔的蓝鲸
让自己跑起来
展开
-
支持向量机(SVM)原理与实践(一)
最近学习了一些机器学习方面的知识,想写一些相关的东西,首先想到的就是先把支持向量机(Support Vector Machine)写下来,倒不是它有多重要,当然确实也挺重要,最重要的原因是我认为它所代表的思想以及一些处理技巧非常的巧妙。所以第一篇相关的文章我想来尽量的写下来它的原理,另外再花一篇文章的篇幅来记录一下在scikit-learn这个机器学习的常用Python库中,SVM的主要使用方法。对原创 2017-12-09 14:20:43 · 1226 阅读 · 0 评论 -
特征工程之特征选择
在前一篇文章中我介绍了一些数据预处理的方法,原始数据在经过预处理之后可以被算法处理了,但是实际中可能有一些特征是没有必要的,比如在中国采集的一些数据,那么国籍就都是中国,其实也就没有意义了,反映在统计量上就是方差过小,也就是样本在这个特征上变化很小。还有一种情况是特征和最后的结果相关性很小,也就是这个特征不起作用,衡量这种相关性我们可以用卡方检验,F-检验以及互信息等。其实很多sklearn的算法原创 2018-01-27 22:00:43 · 3260 阅读 · 0 评论 -
机器学习中的线性模型
线性模型是比较基础也比较简单的一类模型,我在前面没有提及,在这篇文章里面介绍一下一些线形的模型。基本形式所谓线性模型就是用于预测的模型是线性的,可以写成以下的形式 y^(w,x)=w1x1+⋯+wdxd+b\hat y(w,x) = w_1x_1+\cdots+w_dx_d+b 其中w=(w1;w2;⋯;wd)w = (w_1;w_2;\cdots;w_d) 在有的地方也有另一原创 2018-01-10 21:05:41 · 1293 阅读 · 0 评论 -
特征工程探索之数据预处理
我在前面的几篇文章里面介绍了一些机器学习的算法,当然不是非常全面,只是大致介绍,但我觉得对我来说已经对算法有了一定的理解。但是当我想完成一个真正的数据处理任务的时候,发现还是不够,从原始数据到开始用算法训练之间还有一部分空白,这个空白就是——特征工程。我在一些文章里面都看到这种说法数据和特征决定了最后结果的上限,而算法只是用来逼近这个上限的工具。对此我深以为然,数据和选择的特征如果不好,算法再原创 2018-01-24 20:56:46 · 1220 阅读 · 0 评论 -
高斯混合模型(GMM)和EM算法
EM算法EM算法是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计。每一次迭代由两步组成:E步,求期望(expectation);M步,求极大(maximazation)。不断循环直到算法收敛,最后得出参数的估计。之所以要搞得这么麻烦,就是因为有隐变量(latent variable)这个东西的存在,隐变量是无法观测的,这就造成了我们的观测值和想要预测的参数值之间的差距。如果所有的变量都是可原创 2018-01-03 22:18:10 · 6237 阅读 · 1 评论 -
决策树的原理与实践
决策树是一种比较特殊的机器学习方法,它可以看作是一堆if-then规则的集合,某种程度上是更接近人类的思考方式的,具有一定的可读性,而其它机器学习方法更近似于一个个黑箱。 上图是一个是否打球的决策树,可以看到从上到下,不断考虑天气,湿度以及是否有风等情况来决定最后是否去打球,这个决策树建立起来之后,以后就可以根据这些特征来判断是否会去打球。 值得注意的一点就是上图中决策树的叶节点,玩或者不玩原创 2017-12-18 21:01:51 · 1803 阅读 · 0 评论 -
聚类分析常用算法原理:KMeans,DBSCAN, 层次聚类
聚类分析是非监督学习的很重要的领域。所谓非监督学习,就是数据是没有类别标记的,算法要从对原始数据的探索中提取出一定的规律。而聚类分析就是试图将数据集中的样本划分为若干个不相交的子集,每个子集称为一个“簇”。下面是sklearn中对各种聚类算法的比较。 KMeansKMeans算法在给定一个数k之后,能够将数据集分成k个“簇”C={C1,C2,⋯,Ck}\mathcal C = \{C_1, C_2原创 2018-01-01 10:52:32 · 60974 阅读 · 1 评论 -
scikit-learn中集成学习(ensemble learn)的例子与实践
在我的上一篇博客中集成学习基本原理:Adaboost,Bagging和Stacking介绍了一些集成学习的基本原理,所以在这一篇我准备介绍一下scikit-learn中的一些例子,在官方文档中集成学习的例子很多,我当然不可能全部写在博客里面,在这里我只挑一些典型的大致讲一下。AdaBoostimport numpy as npimport matplotlib.pyplot as pltfrom原创 2017-12-30 23:27:56 · 2879 阅读 · 0 评论 -
贝叶斯分类器原理与应用
贝叶斯决策对于机器学习还有一种将概率应用于其中的一类算法,我们这里先介绍贝叶斯决策论,也算是从另一个角度来思考机器学习的算法。假设对于数据集,对应的数据类别有N种,分别为: Y={c1,c2,⋯,cN}Y = \{ c_1, c_2, \cdots, c_N\} L(Y,f(X))L(Y, f(X))为损失函数,那么我们可以得出将一个样本点xx分类为cic_i所产生的期望损失为 Rexp(f)原创 2017-12-16 20:45:15 · 4028 阅读 · 0 评论 -
集成学习基本原理:Adaboost,Bagging和Stacking
集成学习的基本原理是,训练多个“个体学习器”或者叫基分类器,基学习器。然后用某种策略将它们结合起来,最后可以产生比单一学习器优越得多的性能。 集成学习的基本原理是什么呢?原创 2017-12-20 21:58:47 · 7842 阅读 · 0 评论 -
K近邻(KNN)算法原理与实践
这次我来介绍一下k近邻法(k-nearest neighbor, KNN)的基本原理以及在scikit-learn中的应用。这是一种看起来结构和原理都挺简单的机器学习算法,主要的数据结构就是kd树的构造和搜索,在scikit-learn中的例子也比较少。K近邻算法的原理k近邻的原理很简单,给定一个数据集,对于新来的数据,我们首先定义一个数k,然后找到离这个新加入的数据点最近的k个点,然后找出这k个点原创 2017-12-14 19:57:12 · 1753 阅读 · 0 评论 -
支持向量机原理与实践(二):scikit-learn中SVM的使用
我在上一篇博客支持向量机(SVM)原理与实践(一)中介绍了支持向量机的主要原理,在这一篇文章中我介绍一下scikit-learn中SVM的使用,scikit-learn是使用非常广泛的Pythond的机器学习的库,我按照它的官方文档中的例子基本走了一遍,,例子中涉及的主要还有numpy和matplotlib这两个库,对于这两个库我也是接触得不深,所以借着这个机会也研究了一番。但是最终也有些地方搞的不原创 2017-12-10 19:10:47 · 5744 阅读 · 0 评论 -
我的一个Tensorflow模板
前段时间就开始学习Tensorflow了。虽然大致看了两本书,也没怎么上手实践过,但是学习期间就觉得Tensorflow有点乱,这两天试着写了个网络,主要目的就是给自己弄个初级的模板出来,以后有什么新的想法或者任务,就在这个模板的基础上添添改改就行,不必要每次都重新写很多东西。为了以后的方便我目前主要想实现以下三个功能: 1. 使用tf.slim来构建网络的结构,因为看书上还有很多老一点的代...原创 2018-03-23 21:07:43 · 1153 阅读 · 1 评论