机器学习实战(一)——机器学习主要任务

1.1 何谓机器学习

把无序的数据转换为有用的信息

1.2 机器学习重要性

机器学习的重要性不言而喻,它可以帮助我们解决生活当中的很多问题,比如预测鸟的种类,有时我们不可能在发现一种我们不知道的鸟的种类时,去请教鸟类的专家,这个时候,如果我们根据目前已有的关于鸟种类特征的数据,我们就可以训练得到相关预测鸟类别的模型,当满足精度要求后,我们就可以通过输入相关的特征,从而预测出鸟的类别。因为,我们只是想获取鸟类的相关信息,而不需要大费周章的去预约一个鸟类相关的专家

1.3 机器学习主要任务(分类和回归)

  • 分类是机器学习的一项主要任务,主要是将实例数据划分到合适的分类中。

  • 机器学习的另外一项任务是回归,主要是预测数值型的数据,比如通过数据值拟合曲线等。

分类和回归属于监督学习,这类算法必须知道预测什么,即目标变量的分类信息

与监督学习相对应的是无监督学习,此时数据没有类别信息,也不会给定目标值。在无监督学习中,将数据集合分成由类似的对象组成的多个类的过程称为"聚类";将寻找描述数据统计值的过程称之为密度估计。此外,无监督学习可以减少数据特征的维度,以便我们可以使用二维或三维图形更加直观的展示数据信息。表1-2列出了机器学习的主要任务,以及解决相应问题的算法。
机器学习实战(一)——机器学习主要任务_第1张图片

1.4 如何选择合适的算法

使用机器学习算法的目的,想要完成什么任务,比如是预测明天下雨的概率还是对投票者按照兴趣分组;
想要选择合适的算法,必须考虑以下两个问题:

首先考虑机器学习算法的目的。如果想要预测目标变量的值,则可以选择监督学习算法,否则可以选择无监督学习。确定选择监督学习算法后,需要进一步明确目标变量的类型,如果目标变量是离散型,则可以选择分类算法;如果是连续型,则需要选择回归算法。

其次应该考虑实际的数据问题,应该充分了解数据,对实际数据了解的越充分,越容易创建符合实际需要的应用程序。

主要应该了解数据的以下特征:
1)特征值是离散型变量还是连续型变量
2)特征值中是否有缺失的值,何种原因造成
3)数据中是否有异常值
4)某些特征发生的频率如何

通过上面对数据的充分了解,可以帮助我们缩小算法的选择范围,一般并不存在最好的算法和可以给出最好效果的算法,一般发现最好算法的关键环节是反复试错的迭代过程

1.5 开发机器学习应用程序的步骤

收集数据:我们可以通过很多方法手机数据,比如制作网络爬虫从网站抽取数据,也可以使用公开的数据源

准备输入数据:得到数据之后,还必须确保数据格式符合要求,使用标准的数据格式可以融合算法和数据源,方便匹配操作;此外,还要为机器学习算法准备特定的数据格式,一般某些算法要求目标变量和特征值是字符串变量,而另外一些算法则可能要求是整数类型。

分析输入数据:主要是人工分析得到的数据,确保数据中没有垃圾数据。

训练算法:将前两步得到的格式化数据输入到算法,从中抽取信息

测试算法,为了评估算法,必须测试算法工作的效果。对于监督学习,必须已知用于评估算法的目标变量值;对于无监督学习,也必须用其他评测手段来检验算法的成功率。如果不满意算法的输出结果,不改变算法的前提下,问题常常与数据的收集和准备有关

使用算法:将机器学习算法转化为应用程序,执行实际任务,以检验上述步骤是否可以在实际环境中正常运行。

总之,对待实际的问题时,我们要充分了解当前数据的信息,充分利用数据的信息,借此选择出相对较好的机器学习算法,来帮助我们更好的解决实际的问题

1.6 python语言的优势

python语法清晰
易于操作纯文本文件
使用广泛,存在大量的开发文档

1.6.1 python语言特色

MATLAB:虽然有许多内嵌的特征可以轻松构造机器学习应用,且运算速度也很快,但是其软件费用太高。
Java和C:程序设计语言也有矩阵数学库,但是代码量大,为了实现一个简单的工作,需要花费大量时间编写很多无用且冗长的代码。
python:清晰简练,易于理解

1.6.2 python语言缺点

唯一的不足是性能问题,python程序运行的效率不如Java和C代码高,但是可以利用python调用C代码,便可以同时利用C和python的优点,逐步开发机器学习应用程序。

你可能感兴趣的:(机器学习)