MachineLearning
文章平均质量分 81
Alice熹爱学习
做个终身学习者,持续迭代;公众号-极客X养成计划;简书-不会停的蜗牛
展开
-
用 Pipeline 将训练集参数重复应用到测试集
当我们对训练集应用各种预处理操作时(特征标准化、主成分分析等等), 我们都需要对测试集重复利用这些参数。pipeline 实现了对全部步骤的流式化封装和管理,可以很方便地使参数集在新数据集上被重复使用。pipeline 可以用于下面几处:模块化 Feature Transform,只需写很少的代码就能将新的 Feature 更新到训练集中。自动化 Grid Search,只要预先设定好使用的原创 2017-06-28 07:53:06 · 3415 阅读 · 1 评论 -
为什么要用交叉验证
本文结构:什么是交叉验证法?为什么用交叉验证法?主要有哪些方法?优缺点?各方法应用举例?什么是交叉验证法?它的基本思想就是将原始数据(dataset)进行分组,一部分做为训练集来训练模型,另一部分做为测试集来评价模型。为什么用交叉验证法?交叉验证用于评估模型的预测性能,尤其是训练好的模型在新数据上的表现,可以在一定程度上减小过拟合。还可以从有限的数据中获取尽可能多的有效信息。主要有哪原创 2017-06-21 12:09:31 · 96717 阅读 · 18 评论 -
Adaboost 算法
本文结构:什么是集成学习?为什么集成的效果就会好于单个学习器?如何生成个体学习器?什么是 Boosting?Adaboost 算法?什么是集成学习集成学习就是将多个弱的学习器结合起来组成一个强的学习器。这就涉及到,先产生一组‘个体学习器’,再用一个策略将它们结合起来。个体学习器可以选择:决策树,神经网络。 集成时可以所有个体学习器属于同一类算法:全是决策树,或全是神经网络;也可以来自不原创 2017-06-09 20:16:30 · 2210 阅读 · 0 评论 -
关于凸优化
本文结构:凸优化有什么用?什么是凸优化?凸优化有什么用?鉴于本文中公式比较多,先把凸优化的意义写出来吧,就会对它更有兴趣。我们知道在机器学习中,要做的核心工作之一就是根据实际问题定义一个目标函数,然后找到它的最优解。不过求解这种优化的问题其实是很难的,但是有一类问题叫做凸优化问题,我们就可以比较有效的找到全局最优解。例如,SVM 本身就是把一个分类问题抽象为凸优化问题,利用凸优化的各种工具(原创 2017-06-09 20:17:29 · 3890 阅读 · 1 评论 -
Kaggle 神器 xgboost
在 Kaggle 的很多比赛中,我们可以看到很多 winner 喜欢用 xgboost,而且获得非常好的表现,今天就来看看 xgboost 到底是什么以及如何应用。本文结构:什么是 xgboost?为什么要用它?怎么应用?学习资源什么是 xgboost?XGBoost :eXtreme Gradient Boosting 项目地址:https://github.com/dmlc/xgbo原创 2017-06-09 20:10:07 · 8677 阅读 · 1 评论 -
浅谈 GBDT
在 Xgboost 那篇文章 (Kaggle 神器 xgboost) 中提到了 Gradient Boosted Decision Trees,今天来仔细看看 GBDT。本文结构:什么是 GBDT ?GBDT 与 Adaboost 的区别与联系是什么 ?GBDT 与 Xgboost 的区别是什么?什么是 GBDT?GBDT(Gradient Boosting Decision Tree,梯度原创 2017-06-10 12:25:11 · 3011 阅读 · 0 评论 -
用学习曲线 learning curve 来判别过拟合问题
本文结构:学习曲线是什么?怎么解读?怎么画?学习曲线是什么?学习曲线就是通过画出不同训练集大小时训练集和交叉验证的准确率,可以看到模型在新数据上的表现,进而来判断模型是否方差偏高或偏差过高,以及增大训练集是否可以减小过拟合。怎么解读?当训练集和测试集的误差收敛但却很高时,为高偏差。 左上角的偏差很高,训练集和验证集的准确率都很低,很可能是欠拟合。 我们可以增加模型参数,比如,构建更多的特原创 2017-06-22 13:06:46 · 31286 阅读 · 8 评论 -
用线性判别分析 LDA 降维
本文结构:什么是 LDA和 PCA 区别LDA 降维的计算过程LDA 降维的例子1. 什么是 LDA先说判别分析,Discriminant Analysis 就是根据研究对象的各种特征值,判别其类型归属问题的一种多变量统计分析方法。根据判别标准不同,可以分为距离判别、Fisher 判别、Bayes 判别法等。例如,在 KNN 中用的是距离判别,朴素贝叶斯分类用的是 Bayes 判别,线性判原创 2017-07-12 11:54:18 · 5944 阅读 · 0 评论 -
机器学习中常用评估指标汇总
评估指标 Evaluation metrics 可以说明模型的性能,辨别模型的结果。我们建立一个模型后,计算指标,从指标获取反馈,再继续改进模型,直到达到理想的准确度。在预测之前检查模型的准确度至关重要,而不应该建立一个模型后,就直接将模型应用到看不见的数据上。今天先来简单介绍几种回归和分类常用的评估方法。回归:均方误差:其中 D 为数据分布,p 为概率密度函数。from sklearn.metri原创 2017-07-03 11:52:28 · 4631 阅读 · 1 评论 -
用验证曲线 validation curve 选择超参数
本文结构:验证曲线的作用?验证曲线是什么?怎么解读?怎么画?验证曲线的作用?我们知道误差由偏差(bias)、方差(variance)和噪声(noise)组成。偏差:模型对于不同的训练样本集,预测结果的平均误差。 方差:模型对于不同训练样本集的敏感程度。 噪声:数据集本身的一项属性。同样的数据(cos函数上的点加上噪声),我们用同样的模型(polynomial),但是超参数却不同(deg原创 2017-06-23 12:05:52 · 13551 阅读 · 0 评论 -
什么是 ROC AUC
本文结构:什么是 ROC?怎么解读 ROC 曲线?如何画 ROC 曲线?代码?什么是 AUC?代码?ROC 曲线和 AUC 常被用来评价一个二值分类器的优劣。先来看一下混淆矩阵中的各个元素,在后面会用到:1. ROC :纵轴为 TPR 真正例率,预测为正且实际为正的样本占所有正例样本的比例。 横轴为 FPR 假正例率,预测为正但实际为负的样本占所有负例样本的比例。对角线对应的是 “随原创 2017-07-04 12:18:15 · 3033 阅读 · 2 评论 -
用 Grid Search 对 SVM 进行调参
上一次用了验证曲线来找最优超参数。用验证曲线 validation curve 选择超参数今天来看看网格搜索(grid search),也是一种常用的找最优超参数的算法。网格搜索实际上就是暴力搜索: 首先为想要调参的参数设定一组候选值,然后网格搜索会穷举各种参数组合,根据设定的评分机制找到最好的那一组设置。以支持向量机分类器 SVC 为例,用 GridSearchCV 进行调参:from skle原创 2017-06-27 06:58:53 · 26922 阅读 · 4 评论 -
Bagging 简述
本文结构:基本流程有放回抽样的好处Bagging 特点sklearn 中 Bagging 使用Bagging 和 Boosting 的区别bagging:bootstrap aggregating 的缩写。 是一种并行式集成学习方法,可用于二分类,多分类,回归等任务。基本流程:对一个包含 m 个样本的数据集,有放回地进行 m 次随机采样,这样得到具有 m 个样本的采样集。取 T 个原创 2017-07-07 09:25:48 · 9699 阅读 · 0 评论 -
详解 Stacking 的 python 实现
1. 什么是 stackingstacking 就是当用初始训练数据学习出若干个基学习器后,将这几个学习器的预测结果作为新的训练集,来学习一个新的学习器。2. 代码:例如我们用 RandomForestClassifier, ExtraTreesClassifier, GradientBoostingClassifier 作为第一层学习器: # Our level 0 classifiers原创 2017-07-09 09:27:20 · 12182 阅读 · 1 评论 -
简述极大似然估计
极大似然估计是一种参数估计的方法。 先验概率是 知因求果,后验概率是 知果求因,极大似然是 知果求最可能的原因。 即它的核心思想是:找到参数 θ 的一个估计值,使得当前样本出现的可能性最大。例如,当其他条件一样时,抽烟者患肺癌的概率是不抽烟者的 5 倍,那么当我们已知现在有个人是肺癌患者,问这个人是抽烟还是不抽烟?大多数人都会选择抽烟,因为这个答案是“最有可能”得到“肺癌”这样的结果。为什么要有原创 2017-07-10 10:29:07 · 3619 阅读 · 0 评论 -
手把手用 IntelliJ IDEA 和 SBT 创建 scala 项目
1. 安装 sbt打开 terminal,检查 java 版本,安装 sbt: http://www.scala-sbt.org/release/docs/Installing-sbt-on-Mac.html$ java -version$ brew install sbt$ sbt aboutGetting org.scala-sbt sbt 0.13.162. 下载 jetbrains 的原创 2017-07-31 11:42:08 · 30197 阅读 · 0 评论 -
SVM 的核函数选择和调参
本文结构: 1. 什么是核函数 2. 都有哪些 & 如何选择 3. 调参1. 什么是核函数核函数形式 K(x, y) = <f(x), f(y)>,其中 x, y 为 n 维,f 为 n 维到 m 维的映射,<f(x), f(y)> 表示内积。在用SVM处理问题时,如果数据线性不可分,希望通过 将输入空间内线性不可分的数据 映射到 ...原创 2018-06-08 08:15:22 · 36027 阅读 · 0 评论 -
PCA 的数学原理和可视化效果
本文结构:什么是 PCA数学原理可视化效果1. 什么是 PCAPCA (principal component analysis, 主成分分析) 是机器学习中对数据进行降维的一种方法。例如,我们有这样的交易数据,它有这几个特征:(日期, 浏览量, 访客数, 下单数, 成交数, 成交金额),从经验可知,“浏览量”和“访客数”,“下单数”和“成交数”之间会具有较强的相关关系。这种情况下,我们保留原创 2017-06-30 09:08:24 · 6357 阅读 · 1 评论 -
CART 分类与回归树
本文结构:CART算法有两步回归树的生成分类树的生成剪枝CART - Classification and Regression Trees分类与回归树,是二叉树,可以用于分类,也可以用于回归问题,最先由 Breiman 等提出。分类树的输出是样本的类别, 回归树的输出是一个实数。CART算法有两步:决策树生成和剪枝。决策树生成:递归地构建二叉决策树的过程,基于训练数据集生成决策树,生成的原创 2017-06-17 12:06:32 · 1444 阅读 · 0 评论 -
【MachineLearning】数据挖掘中的分类和聚类的区别
参考:http://www.cnblogs.com/batys/p/3274138.html分类聚类是一种有指导的学习,即每个训练样本的数据对象已经有类标识,通过学习可以形成表达数据对象与类标识间对应的知识是根据样本数据形成的类知识并对源数据进行分类进而也可以预测未来数据的归类是一种无指导学习是在预先不知道欲划分类的情原创 2015-11-12 15:11:39 · 1540 阅读 · 0 评论 -
推荐系统
本文结构: 1. 推荐系统 2. 常用方法 1. 简介 2. 模型 cost, gradient 表达式 3. 代码实现 3. 应用实例参考: Coursera-Andrew Ng 的 Machine Learning Sirajology 的 Recommendation Systems - Learn Python for Data Science1. 推原创 2017-05-02 11:35:07 · 7606 阅读 · 9 评论 -
用ARIMA模型做需求预测
本文结构:时间序列分析?什么是ARIMA?ARIMA数学模型?input,output 是什么?怎么用?-代码实例常见问题?时间序列分析?时间序列,就是按时间顺序排列的,随时间变化的数据序列。 生活中各领域各行业太多时间序列的数据了,销售额,顾客数,访问量,股价,油价,GDP,气温。。。随机过程的特征有均值、方差、协方差等。 如果随机过程的特征随着时间变化,则此过程是非平稳的;相反原创 2017-05-02 11:33:16 · 10713 阅读 · 1 评论 -
了解 Sklearn 的数据集
学习资料:大家可以去莫烦的学习网站学到更多的知识。学习资料: 相关代码更多可用数据 网址今天来看 Sklearn 中的 data sets,很多而且有用,可以用来学习算法模型。eg: boston 房价, 糖尿病, 数字, Iris 花。也可以生成虚拟的数据,例如用来训练线性回归模型的数据,可以用函数来生成。例如,点击进入 boston 房价的数据,可以看到 sample 的总数,属性,以及原创 2017-05-02 11:32:16 · 8197 阅读 · 0 评论 -
Sklearn 快速入门
学习资料:大家可以去莫烦的学习网站学到更多的知识。本文结构:Sklearn 简介选择模型流程应用模型 Sklearn 简介Scikit learn 也简称 sklearn, 是机器学习领域当中最知名的 python 模块之一.Sklearn 包含了很多种机器学习的方式:Classification 分类Regression 回归Clustering 非监督分类Dimensional原创 2017-05-02 11:31:16 · 6681 阅读 · 1 评论 -
决策树的python实现
本文结构:是什么?有什么算法?数学原理?编码实现算法?1. 是什么?简单地理解,就是根据一些 feature 进行分类,每个节点提一个问题,通过判断,将数据分为几类,再继续提问。这些问题是根据已有数据学习出来的,再投入新数据的时候,就可以根据这棵树上的问题,将数据划分到合适的叶子上。2. 有什么算法?常用的几种决策树算法有ID3、C4.5、CART:ID3:选择信息熵增益最大的featur原创 2017-05-02 11:30:44 · 5092 阅读 · 2 评论 -
通过一个kaggle实例学习解决机器学习问题
之前写过一篇 一个框架解决几乎所有机器学习问题 但是没有具体的例子和代码,今天看到一个不错的 kaggle 上的 code Exploratory Tutorial - Titanic 来解析一下,源码可以直接点这个链接。在这篇文章中可以学到一个完整的运用机器学习解决分析问题的过程,它包括了解决问题的一般流程,描述性统计的常用方法,数据清洗的常用方法,如何由给定的普通变量启发式思考其他影响因素,sk原创 2017-05-02 11:29:12 · 11273 阅读 · 0 评论 -
机器学习算法应用中常用技巧-2
7. 降维-PCAn_components为降到多少维,用原数据fit后,再用transform转换成降维后的数据。from sklearn.decomposition import PCApca = PCA(n_components = 6)pca.fit(good_data)reduced_data = pca.transform(good_data)reduced_data = pd.原创 2017-05-02 11:28:35 · 2324 阅读 · 0 评论 -
机器学习算法应用中常用技巧-1
参考:Udacity ML纳米学位1. 取样数据量很大的时候,想要先选取少量数据来观察一下细节。indices = [100,200,300]# 把sample原来的序号去掉重新分配samples = pd.DataFrame(data.loc[indices], columns = data.keys()).reset_index(drop = True)print "Chosen sampl原创 2017-05-02 11:28:09 · 2534 阅读 · 0 评论 -
特征工程怎么做
在工业应用中,feature 比算法重要,数据比 feature 重要,有很多 kaggle 参赛者分享经验时也是说 feature engineering 很重要,今天来写一写特征工程相关的。本文结构Feature Engineering 是什么有什么用怎么用实际应用1. 是什么参考先用例子来直观地了解一下例如要分析声音,直接拿来数据,是什么都学不到的,需要进行 fourier 变换例如原创 2017-05-02 11:27:33 · 4979 阅读 · 0 评论 -
轻松看懂机器学习十大常用算法
通过本篇文章可以对ML的常用算法有个常识性的认识,没有代码,没有复杂的理论推导,就是图解一下,知道这些算法是什么,它们是怎么应用的,例子主要是分类问题。每个算法都看了好几个视频,挑出讲的最清晰明了有趣的,便于科普。 以后有时间再对单个算法做深入地解析。今天的算法如下: 决策树 随机森林算法 逻辑回归 SVM 朴素贝叶斯 K最近邻算法 K均值算法 Adaboos原创 2017-05-02 11:25:43 · 22938 阅读 · 23 评论 -
一个框架解决几乎所有机器学习问题
上周一个叫 Abhishek Thakur 的数据科学家,在他的 Linkedin 发表了一篇文章 Approaching (Almost) Any Machine Learning Problem,介绍他建立的一个自动的机器学习框架,几乎可以解决任何机器学习问题,项目很快也会发布出来。这篇文章迅速火遍 Kaggle,他参加过100多个数据科学相关的竞赛,积累了很多宝贵的经验,看他很幽默地说“写这样原创 2017-05-02 11:26:37 · 24786 阅读 · 13 评论 -
简单粗暴地入门机器学习
有很多小伙伴问过我零基础要怎么入门机器学习或者人工智能,今天来提炼一下,方便志同道合的朋友们参考。记得我刚入此山洞准备修炼的时候,就 Google 了好多这类的问题,那时候觉得大家的建议好多呀,这条路看起来真长,那么多东西要学,那么多书要看,那么多有用的课程要学。现在我可以就自己走过的坑坑包包来推荐一条简单粗暴的路径。[step 1: 方向]在行动之前,先想好这几个最基本的问题,如果自己想不全都可以原创 2017-05-14 01:14:42 · 35920 阅读 · 14 评论 -
机器学习的技术栈及应用实例脑洞
之前写了一篇入门级的学习列表: 简单粗暴地入门机器学习好多小伙伴觉得不太过瘾,今天补充一些脑洞!本文结构:机器学习技术栈职位项目实例1. 机器学习技术栈去知乎上可以搜到很多推荐的学习路线,问题就是太多了,我就先列出一些必需的知识和项目方向,学习还是要一步一步积累的。需要的基础技能:Various level of math, including probability, statistic原创 2017-05-14 01:15:54 · 7368 阅读 · 2 评论 -
从 0 到 1 走进 Kaggle
本文结构: - kaggle 是什么 - 如何参赛 - 解决问题一般步骤 - 进一步: - 如何探索数据 - 如何构造特征 - 提交结果kaggle 是什么?Kaggle 是一个数据科学竞赛的平台,很多公司会发布一些接近真实业务的问题,吸引爱好数据科学的人来一起解决。 https://www.kaggle.com/点击导航栏的 competitions 可以看到有很多原创 2017-05-18 11:47:20 · 7944 阅读 · 15 评论 -
一文了解强化学习
虽然是周末,也保持充电,今天来看看强化学习,不过不是要用它来玩游戏,而是觉得它在制造业,库存,电商,广告,推荐,金融,医疗等与我们生活息息相关的领域也有很好的应用,当然要了解一下了。本文结构:定义和监督式学习, 非监督式学习的区别主要算法和类别应用举例1. 定义强化学习是机器学习的一个重要分支,是多学科多领域交叉的一个产物,它的本质是解决 decision making 问题,即自动进行决原创 2017-06-16 11:50:47 · 73373 阅读 · 9 评论 -
LightGBM 如何调参
本文结构:什么是 LightGBM怎么调参和 xgboost 的代码比较1. 什么是 LightGBMLight GBM is a gradient boosting framework that uses tree based learning algorithm.LightGBM 垂直地生长树,即 leaf-wise,它会选择最大 delta loss 的叶...原创 2018-06-16 07:58:07 · 15472 阅读 · 1 评论