读书|《Mastering Machine Learning with Python in Six Steps》

蜗牛最近精力真是有限,很快就要大考了,不过读书不能停。

接下来几天读一读 《Mastering Machine Learning with Python in Six Steps》这本书。

更完整的思维导图 在整本书结束后,在我的公众号后台回复 MLb01 即可下载。
本文目的为速读,一些重要的知识点有相关历史博文链接,还没有写到的后续也会陆续推出。

如书名 in Six Steps,本书结构也是 6 部分。

step 1: 主要讲了 python 的安装和一些基础。

step 2: 讲了机器学习的发展史,分为 监督式,非监督式,解决问题的基本流程,核心 package 的主要组件。

发展史

常用中间的CRISP-DM流程。

一个框架解决几乎所有机器学习问题 通过一个kaggle实例学习解决机器学习问题

step 3: 机器学习基础,包括 数据的类型,特征工程,数据探索方法,以及回归 /分类/聚类等基础算法。

特征工程怎么做 机器学习算法应用中常用技巧-1 轻松看懂机器学习十大常用算法

step 4: 调优,讲了如何选择合适的模型参数,超参数,Bagging/Boosting/Stacking 等模型融合方法。

Bagging 简述 Adaboost 算法 浅谈 GBDT 详解 Stacking 的 python 实现

step 5: 讲了在文本挖掘方面的应用,包括 数据预处理的常用几种方法,以及如何做 情感分析和推荐系统。

一个 tflearn 情感分析小例子 怎样做情感分析 推荐系统

step 6: 深度学习,简单介绍几种神经网络,FNN,CNN,RNN。

机器学习&人工智能博文链接汇总


step 3:

3.1 数据的类型

对于不同类型的数据,可以通过相应的描述性统计方法来观察数据:


3.2 特征工程

讲了几种基本方法,例如

对缺失数据,

  1. < 5% 时可以删除,2. 用 mean/average or mode or median 等值进行代替,3. 用随机数替代, 4. 或者用简单的回归/分类模型预测。

对类别数据,

  1. 可以用 One Hot Encoder 转化,2. 可以用 LabelEncoder() 转化成 0 到 n_classes-1 的数字

对数据进行规范化,

  1. Normalizing:将数据范围缩到 0 to 1, 2. standardization:将数据转化成标准正态分布的

3.3 数据探索

单变量的可以用 value_counts(), hist(), boxplot() 等方法,

多变量的可以用 Correlation Matrix 看相关关系,

也可以用 matrix of scatter plots 看各对变量间的关系和分布,

通过这些可视化的观察,可以得到一些基本的发现,例如 missing values,各变量的range,变量间相关性等。


3.4 回归

这一部分先讲了几种回归的模型,然后讲了几种诊断。

几种回归的模型

1. Linear regression

在评估模型好坏时,常用指标

机器学习中常用评估指标汇总

  • R-squared:在 0~1 之间,越接近 1 模型越好
  • RMSE
  • MAE

2. Polynomial Regression

可以通过 from sklearn.preprocessing import PolynomialFeatures 实现,用 R-squared 看哪个degree好一些。

3. Multivariate Regression

例如房价就会由 Bedrooms,Bathrms 等多个因素决定。

此处会涉及到 Multicollinearity 多重共线性问题,即多个自变量彼此强相关这时应该只使用其中一个自变量。

可以用 VIF 来检查多重共线性:

方法就是:

  • 1.plot correlation matrix
  • 2.Remove multicollinearity
Pseudo code:
vif = [variance_inflation_factor(X[independent_variables].values, ix)
if max(vif) > thresh:
del independent_variables[maxloc]
  • 3.Build the multivariate linear regression model

lm = sm.OLS(y_train, X_train).fit()


几种诊断:

1. outliers

通过执行 Bonferroni outlier test,得到 p value < 0.05 为影响精度的异常值。

2. Homoscedasticity and Normality

误差方差应该是常数,且误差应该是正态分布的。

3. Over-fitting and Under-fitting

随着变量数的增加,模型的复杂性增加,过拟合的概率也会增加。

Regularization

是其中一种可以缓解过拟合问题的方法,常用 Ridge 和 LASSO 回归通过惩罚系数的大小来处理这个问题。

持续更新

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

从三大神经网络,测试对比TensorFlow、MXNet、CNTK、Theano四个框架

选自data science central 机器之心编译 参与:蒋思源 本文比较了 Keras 支持的主流深度学习框架性能,包括 TensorFlow、CNT...

3307
来自专栏人工智能头条

拓扑数据分析与机器学习的相互促进

1352
来自专栏深度学习之tensorflow实战篇

模型评估过程中:命中率/覆盖率

模型评估是模型中关键部分,一方面通过模型评估可以对模型进行进一步的优化,使模型性能够更准确;另一方面,通过模型评估可以看模型实际运行效果,对采取的维系策略的有效...

47011
来自专栏祝威廉

如何实现AutoML -- 先Auto每个环节

最近一直在思考如何提高算法工程师效率,并且能让普通工程师也参与进来,毕竟现在来看,招聘到一个合格的算法成本颇高。经过对现实中很多场景的观察,我发现很多情况下算法...

1241
来自专栏机器之心

ICLR 2018 | 斯坦福大学教授Christopher Manning提出全可微神经网络架构MAC:可用于机器推理

选自arXiv 作者:Drew A. Hudson、Christopher D. Manning 机器之心编译 参与:刘天赐、黄小天 现今,神经网络已在图像识别...

3168
来自专栏新智元

分布式深度学习框架PK:Caffe-MPI, CNTK, MXNet ,TensorFlow性能大比拼

作者:施少怀 褚晓文 编译:弗格森 马文 【新智元导读】这篇论文评估了四个state-of-the-art 的分布式深度学习框架,即Caffe-MPI, C...

5407
来自专栏应兆康的专栏

17. 如果你有一个很大的开发集,把它分为两个子集,只着眼于其中一个

假设你有一个含有5000个样本的大型开发集,其中有20%的错误率。这样,算法对约1000个图片进行错误分类。手动检查1000张图片是非常耗费时间的, 所以我们可...

32210
来自专栏机器人网

机器人运动学之连杆笑你不会看平面三维图

前面我们已经对变换已经有一定了解了,是时候该放到机器人上去实践一下了。当然,我们的实践目标还是臂式机器人。

1533
来自专栏大数据挖掘DT机器学习

完整手写一个朴素贝叶斯分类器,完成文本分类

Part 1: 本文解决的问题: 我在有这样的一个数据集,里面存放了人们对近期播放电影的评价,当然评价也就分成两部分,好评和差评。我们想利用这些数据训练一个模...

4685
来自专栏量子位

谷歌开源集成学习工具AdaNet:2017年提出的算法终于实现了

最近,谷歌在GitHub上发布了用TensorFlow实现的AutoML框架——AdaNet,它改进了集成学习的方法,能以最少的专家干预实现自动习得高质量模型。...

1072

扫码关注云+社区

领取腾讯云代金券