机器学习:基本概念一般步骤工具
Posted moonlight-lin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习:基本概念一般步骤工具相关的知识,希望对你有一定的参考价值。
人工智能(Artificial Intelligence)
- 通过计算机模拟人类智慧,以完成很多只有人类才可以完成,甚至连人类都无法完成的任务
- 比如专家系统、图像识别、语音识别、自然语言处理、自动驾驶、推荐系统、人机博弈、电脑游戏、机器人等
- 人类利用计算机完成了很多对人类而言非常困难的工作,但一些人类可以很容易解决的问题比如驾驶汽车、语言图像识别,计算机却很难解决,这是人工智能需要解决的问题
- 早期人工智能只能解决简单的特定环境下的问题,比如国际象棋
机器学习(Machine Learning)
- 通过分析已有的数据,从中学习,然后对新数据进行预测、决策、判断
- 人们发现有些问题通过逻辑分析很难解决,还不如通过对已有的数据进行统计分析
- 机器学习需要有海量数据进行训练,很多数据量小或是靠逻辑分析能解决的问题并不适合使用机器学习
深度学习(Deep Learning)
- 传统的机器学习,需要人工选取特征值,计算机从数据中提取人工指定的特征值然后进行训练
- 然而有些问题,靠人工的方式无法很好的提取特征值
- 深度学习不需要人工指定特征值,而是自动提取简单的特征值,并组合成更复杂的特征值,然后进行训练
- 深度学习使用的主要是神经网络
监督学习(Supervised Learning)
- 给定样本集 (X, Y),机器从中推演出合适的模型 y = F(x),然后对新的 X 数据,通过 F 预测相应的 Y
- 监督学习一般使用两种类型的目标变量:标称型和数值型
- 标称型目标变量的结果只在有限目标集中取值,如真与假、动物分类集合{爬行类、鱼类、哺乳类、两栖类}
- 标称型目标变量主要用于分类
- 数值型目标变量则可以从无限的数值集合中取值,如 0.100、42.001、1000.743 等
- 数值型目标变量主要用于回归分析
无监督学习(Unsupervised Learning)
- 给定的样本集中只有 X 没有 Y,无监督学习要回答的是:从数据 X 中能发现什么?
- 比如 "构成 X 的最佳的 6 个数据簇都是哪些"、"X 中哪三个特征最频繁共现"
- 将数据集合分成由类似的对象组成的多个类的过程被称为聚类
- 将寻找描述数据统计值的过程称之为密度估计
回归(Regression)一词的来历
- 假设现在有一些数据点,我们用一条曲线对这些点进行拟合,寻找最佳拟合参数,这个拟合过程就称作回归
- 回归由高尔顿发明,高尔顿 1877 年完成第一次回归预测:根据上一代豌豆种子的尺寸预测下一代豌豆种子的尺寸
- 他发现个体小的豆子往往倾向于产生比其更大的子代,而个体大的豆子则倾向于产生比其小的子代
- 高尔顿认为这是由于新个体在向这种豆子的平均尺寸回归,就是事物总是倾向于朝着某种平均发展
- 高尔顿在多项研究上都注意到这个现象,所以尽管这个英文单词跟数值预测没有任何关系,但这种研究方法仍被称作回归
机器学习的一般步骤如下
- 收集数据
- 提取特征
- 转换数据
- 清洗数据
- 划分数据
- 选择算法
- 训练算法
- 验证算法
- 符合要求则继续,否则重新选择算法或重新训练算法,甚至是重新收集数据
- 使用算法
分类例子 - 专家系统 - 鸟类识别系统
- 收集大量已分好种类的样本数据
- 选择用于分析的特征(重量,翼展,有无脚蹼,不同部位颜色,等等)
- 取特征值 X 和种类 Y、转换数据格式、特征编码
- 清洗数据、处理缺失值、处理异常值、归一化或标准化、降维
- 分为两套独立的样本集:训练数据集和测试数据集,比如可以选择 90% 的样本作训练,10% 的样本作测试,需要保证有随机性
- 选择一种分类算法
- 使用训练数据集进行迭代训练,产生一个模型 F(X) = Y
- 将测试数据集的特征值作为模型的输入,模型判断出相应的种类
- 将模型判断的结果与测试数据集的实际种类作比较,得出该模型的精确度,如果精确度不符合要求,重新选择算法或重新训练算法,甚至是重新收集数据
- 使用该模型,通过特征值对新数据进行分类
工具
- Python
- 简单(脚本,高级数据类型如 Dict,正则表达式,操作文本文件,等等)
- 流行(网上资料多,库多,SciPy、NumPy 等许多科学函数库都实现了向量和矩阵操作,MatplotLib 等库实现图形化)
- 缺点是性能差些(可以通过使用 C 替代核心代码改善,实际上 NumPy 这些库就是 C 实现的)
机器学习库
库 简介 scikit-learn(sklearn) 机器学习算法 TensorFlow/Theano/Caffe 深度学习框架 Keras 以 TensorFlow 或 Theano 为后端,提供友好易用的API,适合于简单快速的原型设计 Spark MlLib 分布式、大数据、运算快,提供的算法可能比较基础,API 限制多
以上是关于机器学习:基本概念一般步骤工具的主要内容,如果未能解决你的问题,请参考以下文章