开头奉上云栖社区的礼物:
请收下这份关于人工智能的根目录博客整理系列(一)
关于数据科学的那些事博客整理系列(二)
机器学习必备手册博客整理系列(三)
扩展眼界的都在这博客整理系列(四)
深度学习必备手册 (上) 博客整理系列(五)
在过去的一段时间内, 我通过不断的深入学习, 成长为一名不错的机器学习从业者为此我接受了一个小时的访谈, 以此来总结我学习的历程学习机器学习主要有两种方法: 理论机器学习方法和应用机器学习方法
理论机器学习
对于学习机器学习的理论方法, 下面的课题应该进行深入的研究
1.线性代数 - MIT,IISc 班加罗尔
2.微积分 - 基础, Coursera, 高级, Coursera
3.概率和统计 - 麻省理工学院
4.统计学习理论 - 麻省理工学院, 斯坦福
5.机器学习 - Coursera,Caltech
接着就是阅读和研究论文, 实施研究工作 / 新算法, 发展专业知识, 并进一步选择专业化的研究路径
应用机器学习
应用机器学习需要条件
1.对上述科目的基础知识 (1 至 4) 很好的理解
2.Python 或 R 编程语言, 根据您的偏好
3.学习使用所选编程语言中流行的机器学习数据操作和可视化库我个人使用 Python 编程语言, 因此我将在下面详细说明
4.必须知道 Python 库: numpy, pandas, scikit-learn, matplotlib
5.其他流行的 Python 库: LightGBM, XGBoost, CatBoost
速成机器学习方法
如果你想了解什么是机器学习和它可能是什么样的你可以通过这种方式进行实验, 快速掌握
1.了解机器学习概念概述
2.学习 Python 或 R
3.了解并学习使用您选择的语言使用流行的库
Python 环境设置
1.Python
1.1:Python.org 下载, 学习
1.2:Anaconda 下载, 学习
2.代码编辑器 / IDE
2.1:Visual Studio 代码(搜索并安装 Python 扩展, 选择最下载的一个)
2.2:Notepad+ +
2.3:Jupyter(与 Anaconda 一起安装)
3.安装 python 包
3.1:
使用 python 的本地工具管理软件包
- : pip install <package-name>
- 3.2:
用 anaconda 管理软件包
: conda install <package-name>
4.管理 Python(本地)虚拟环境(如果需要多个环境)
4.1: 创建虚拟环境: python -m venv c:\path\to\env\folder
4.2: 命令帮助: python -m venv -h
4.3: 切换环境: activate.bat 位于虚拟环境文件夹中的脚本
4.4:Python(本地)虚拟环境 文档
5.管理 Anaconda 虚拟环境(如果需要多个环境)
5.1: 默认 conda 环境 - root
5.2: 列出可用的环境 - conda env list
5.3: 创造新的环境 - conda create --name environment_name
5.4: 切换到环境 - activate environment_name
5.5:Anaconda 虚拟环境文档
机器学习概念概述
机器学习: 是一种通过函数 f(x)从大量数据中找到模式的方法, 该函数有效地推广到看不见的 x, 从而在未被看到的数据中找到学习模式, 并使机器学习模型得到训练
数据集: 数据被用于应用机器学习, 并从中找到模式对于监督式机器学习应用程序, 数据集包含 x (输入 / 属性 / 自变量)和 y(目标 / 标签 / 因变量)数据对于无监督的数据, 它只是 x, 输入和数据的输出是某种学习模式
Train set(数据集): 数据集的一个子集, 用于 (训练) 机器学习算法以学习模式
评估 / 验证 / 交叉验证集: 数据集的子集, 不在训练集中, 用于评估机器学习算法的工作方式
测试集: 数据集检验学习成果对于监督问题, 训练集合测试集不能相同对于无人监督, 训练和测试集可以是相同的
算法类型:
监督学习: 在监督问题中, 历史数据包括需要为将来 / 不可见数据预测的标签例如, 对于房屋价格预测, 我们有关于房屋 (面积, 卧室数量, 位置等) 和价格的数据在对具有给定数据 (X 数据) 和价格 (Y 标签) 的机器学习模型进行后续训练之后, 将针对新的 / 不可见数据 (X) 预测将来的价格(Y)
无监督学习: 在无监督学习中, 没有标签或目标属性一个典型的例子是基于学习模式的数据聚类对于房屋细节 (面积, 位置, 价格, 卧室数量, 建成日期等) 的数据集, 算法需要查找是否有任何隐藏的模式例如, 一些房屋非常昂贵, 而另外一些则是平常的价格一些房子很大, 而一些房子的大小一般有了这些模式, 记录 / 数据被聚集成一组, 如豪宅, 非豪宅, Bunglows, 公寓等
强化: 在强化学习中, 代理在环境中起作用, 并收到正面或负面的反馈正面的反馈告诉一个代理, 它做得很好, 代理进行类似的计划 / 行动负面反馈告诉代理商, 它做了一些错误的事情, 应该改变它的行动方式代理和环境是软件 / 编程实现强化学习的核心是建立一个能够成功完成一个环境中的特定任务的代理
常用算法: 线性回归, Logistic 回归, 支持向量机, K - 最近邻居, 决策树, 随机森林, 梯度提升
预处理: 在现实世界的场景中, 机器学习算法可以直接应用的状态下, 数据很少干净整洁预处理是一个清理数据的过程, 供给机器学习算法一些常见的预处理步骤是:
1.缺失值: 当某些值丢失时, 通常通过添加中值 / 平均值或删除相应的行, 或使用前一行的值等来处理有很多方法可以做到这一点究竟需要做什么取决于数据的种类
2.分类变量: 离散有限的一组值, 像车型, 部门等, 这些值被转换成数字或向量转换为矢量被称为单热编码在 Python 中有很多方法一些机器学习算法 / 库本身通过内部编码来处理分类列一种编码方式是 在 scikit-learn 中使用 sklearn.preprocessing.OneHotEncoder
3.比例缩放: 按比例将列中的值缩减为常用比例, 如 0 到 1. 在所有列中的值在一个共同的范围内可以在一定程度上提高准确性和训练速度
4.异常值: 异常值需要根据问题和商业案例逐个处理
数据转换: 当数据集中的列 / 属性没有固有的模式时, 它会被转换成 log(values),sqrt(values)等等
特征工程: 特征工程是从现有数据中获取隐藏洞察的过程考虑一个房屋价格预测数据集, 其中有房屋宽度, 房屋长度, 卧室数量和价格两列在这里, 我们看到房子的一个关键属性区域缺失, 但可以根据绘图宽度和绘图长度进行计算所以一个计算列, 面积被添加到数据集这被称为特征工程
训练: 这是机器学习算法对给定数据进行训练以找出应用于未知数据的一般化模式的主要步骤
降维: Dimentionality 减少的目的在于找到所有功能中最重要的功能, 旨在减少 维度 的数据您可以在这里找到更多关于降维的信息
评估度量标准: 评估度量标准是用于评估其正确性预测的度量标准机器学习算法在训练时使用评估度量来评估, 计算成本并优化成本凸函数尽管每个算法都有一个默认评估指标, 但建议根据业务案例 / 问题指定确切的评估指标
参数调整: 尽管当今最先进的算法大部分都具有合理的参数默认值, 但通过调整参数来控制模型的准确性并改善总体预测, 总是有帮助的参数调整可以通过反复改变和评估准确性来反复试验或者, 可以提供一组参数值来尝试所有这些参数的不同排列, 并找到最佳的参数组合这可以在 scikit-learn 中使用称为超参数优化器的一些辅助函数完成
过度拟合: 过度拟合是机器学习模型几乎记忆所有训练数据并且几乎准确地预测已经在训练集中的数据的状态这是一个模型未能概括和预测未被看见的数据的状态可以使用正则化来处理过度拟合, 如果配置不当, 则调整超参数, 从而阻止部分数据集使用正确的交叉验证 (1)(2) 策略
欠拟合(差异): 欠拟合是即使在预测训练集中的数据时, 机器学习模型的预测也不会很好这也被称为具有高方差的模型欠拟合可以处理添加更多数据, 添加 / 删除特征, 尝试不同的机器学习算法等
正则化: 在模型试图进一步学习 (减少错误, 倾向于过度拟合) 的某个时刻, 正则化有助于对付过度拟合效应正则化通常是在成本 / 误差计算过程中添加的参数机器学习算法可能不是明确地提供正则化参数在这种情况下, 通常还有其他一些参数可以调整, 以在必要的范围内引入正规化
预测: 为了用训练的机器学习模型进行预测, 通过提供测试数据集作为参数来调用模型的预测方法测试数据集应该按照训练数据集的方式进行预处理换句话说, 在用于训练的机器学习模型的相同格式的训练数据中
其他术语:
模型堆叠: 当单个学习算法不好时, 多个机器学习算法被用来进行预测, 并且预测以不同的方式组合在一起最简单的是加权预测有时, 其他机器学习模型 (元模型) 被用在第一级模型的预测之上这可能会达到任何复杂程度, 并可能有不同的管道
深度学习
有趣的是, 今天解决的所有机器学习问题中的大部分 (我猜测超过 90%) 都是使用随机森林, 梯度增强决策树, SVM,KNN, 线性回归, Logistic 回归来解决的
但是, 有一些问题不能用上述技术来解决类似图像分类, 图像识别, 自然语言处理, 音频处理等问题, 但可以使用称为深度学习的技术来解决在开始深入学习之前, 我相信首先要掌握所有上述概念
良好的深度学习资源:
1.Fast.ai - Pranay Tiwari!
2.neuralnetworksanddeplearning.com - 一本在线书籍, 强调理论和基础
3.Coursera 的深度学习专长 Andrew Ng
4.deeplearningbook.org - 一本在线书籍
如果你知道深度学习的概念, 一些流行的深度学习库是: keras,CNTK,Tensorflow,tflearn,pytorch,Theano
实践:
练习是最重要的, 没有提及练习机器学习, 这个指南是不完整的要进一步练习和掌握你的技能, 下面是你可以做的事情:
从各种在线数据源获取数据集一个这样流行的数据源是 UCI 机器学习库
另外, 您可以
搜索机器学习数据集
参加在线机器学习 / 数据科学比赛一些流行的是 - Kaggle,HackerEarth 等等如果你最终从非常困难的事情开始, 试着坚持一下如果还觉得困难, 把它停在一边, 找到其他的没有必要失望通常在线比赛的问题有一定的难度, 可能并不适合初学者写下来你所学到的东西! 这将有助于巩固你对这个问题的理解和想法 PS: 可以在云栖社区发表!
关注数据科学, 关于 Quora 的机器学习主题, 很多伟大的建议和问题 / 答案
最后的想法:
如果您正在认真从事机器学习 / 数据科学领域, 或者您正在考虑改变职业生涯, 请考虑您的动机以及您为什么愿意这样做
如果你确定, 我有一个建议给你 永远不要放弃这绝对是值得的, 我可以说, 从过去 18 个月以来, 我走过了这条路...... 几乎每一天, 每个周末和每个闲暇的时间 (除了我旅行时, 或者完全被我的日常工作所淹没) 掌握数据科学的道路并不容易正如他们所说: 罗马不是一天建成的! 你需要学习很多科目, 兼顾不同的学习重点即使学了很多东西, 你仍然会发现以前从来没有想过或听说过的新东西你不断发现的新概念 / 新技术可能会让你觉得你还是不了解很多东西, 还有更多的理由要报道这很常见只要坚持下去设定大目标, 计划小任务, 只关注手头的任务
本文由
来源: http://click.aliyun.com/m/42641/