1、什么是机器学习
- 机器学习是人工智能的一个分支;
- 机器学习是实现人工智能的一个途径(即以机器学习为手段解决人工智能中的问题);
- 机器学习算法是一类从数据中自动分析获得规律(模型),并利用规律对未知数据进行预测的算法。
2、为什么需要机器学习
- 21世纪机器学习又一次被人们关注,而这些关注的背后是因为整个环境的改变,我们的
数据量越来越多,硬件越来越强悍
; - 急需要
解放人的生产力
,自动去寻找数据的规律,去解决更多专业领域的问题; 机器学习的应用领域
:数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、检测信用卡欺诈、证券市场分析、DNA序列测序、语音和手写识别、战略游戏和机器人等
3、开发机器学习应用程序的步骤
(1)收集数据
- 制作网络爬虫从网站上抽取数据;
- 从RSS反馈或者API中得到信息;
- 设备发送过来的实测数据。
(2)准备输入数据
- 得到数据之后,必须确保数据格式符合要求。
(3)分析输入数据
- 这一步的主要作用是确保数据集中没有垃圾数据,如果是使用信任的数据来源,可以直接跳过这个步骤。
(4)训练算法
- 机器学习算法从这一步才真正开始学习;
- 如果使用无监督学习算法,由于不存在目标变量值,故而也不需要训练算法,所有与算法相关的内容在第(5)步。
(5)测试算法
- 这一步将实际使用第(4)步机器学习得到的知识信息。当然在这也需要评估结果的准确率,然后根据需要重新训练你的算法。
(6)使用算法
- 转化为应用程序,执行实际任务,以检验上述步骤是否可以在实际环境中正常工作;
- 如果碰到新的数据问题,同样需要重复执行上述的步骤。
4、Scikit-learn
机器学习库
- Python语言的机器学习工具,开源、商业可用 - BSD许可;
- 所有人都适用,可在不同的上下文中重用;
- 自2007年发布以来,scikit-learn已经成为最给力的Python机器学习库(library)了;
- Scikit-learn支持的机器学习算法包括
分类
,回归
,降维
和聚类
。还有一些特征提取
(extracting features
)、数据处理
(processing data
)和模型评估
(evaluating models
)的模块; - 作为Scipy库的扩展,scikit-learn也是建立在Python的NumPy和matplotlib库基础之上,NumPy可以让Python支持大量多维矩阵数据的高效操作,matplotlib提供了可视化工具,SciPy带有许多科学计算的模型;
- Scikit-learn包括许多知名的机器学习算法的实现,包括LIBSVM(支持向量机)和LIBLINEAR(线性)。还封装了其他的Python库,如自然语言处理的NLTK库。另外,scikit-learn内置了大量数据集,允许开发者集中于算法设计,节省获取和整理数据集的时间。