机器学习之准备(一)

来源:互联网 发布:mac怎么打开flac 编辑:程序博客网 时间:2024/05/29 12:39

目录

  • 机器学习简单概述
  • 机器学习的主要任务
  • python语言优势
  • 学习机器学习的原因

1.1 何谓机器学习

简单的说,机器学习就是把无序的数据变换成有用的信息。
机器学习的主要任务就分类。
机器学习关键术语:
分类;训练集;样本集;训练样本;目标样本;知识表示
训练集是用于机器学习算法的数据样本集合

1.3 机器学习的主要任务

机器学习的主要如何解决分类问题,主要任务是将实例数据划分到合适的分类中。
机器学习的另一项任务就是回归。(回归的例子之一就是 数据拟合曲线)
分类和回归属于监督学习。
监督学习:因为这类算法必须知道预测什么,即目标变量的分类信息。
无监督学习:此时数据没有类别信息,也不会给定目标值。无监督学习可以减少数据特征的维度,使我们用二维图或三维图更加直观地展示数据信息。

聚类:数据集合分成类似的对象组成多个类的过程。
密度估计:寻找描述数据统计值的过程。
这里写图片描述

1.4 如何选择合适的算法

先考虑两个问题:
使用机器学习算法的目的,想要完成何种任务?
需要分析或收集的数据是什么?(了解数据的以下特征:特征值是离散变量还是连续型变量,特征量是否存在缺失的值)
我们只能一定程度上缩小算法的选择范围,一般不存在最好的算法或给出最好结果的算法,同时还要尝试不同算法的执行效果。

发现最好的算法的关键环节是反复试错的过程。

1.5 开发及其学习应用程序的步骤

收集数据。我们有很多办法收集数据,如爬虫,设备发送的信息。
准备输入数据。确保数据的格式符合要求。本书采用python的List
分析输入数据。手工打开文本编辑器,看数据是否为空。浏览数据,分析是否可以识别模式。确保数据集中没有垃圾数据。
训练算法。将前两步得到的格式化的数据输入到算法,从中抽取知识和信息。得到的知识需要存储为计算机可以处理的格式。
测试算法。将实际使用第4步得到的算法。对于监督学习,必须已知用于评估算法的目标变量值;对于无监督学习,也必须用到其他的评测手段来检验算法的成功率。
使用算法。将机器学习算法转换为应用程序,执行实际任务。

1.6 python语言的优势

有以下几个原因:(1)python的语法清晰;(2)易于操作的纯文本文件;(3)使用广泛,存在大量的开发文档

1.7 NumPy函数基础
下面给出一个数组和矩阵的例子:

In [1]: import numpy as npIn [2]: x=np.random.rand(4,4)In [3]: xOut[3]:array([[ 0.52844327, 0.22339639, 0.1034135 , 0.463985 ],[ 0.14394297, 0.04331558, 0.17968244, 0.55428581],[ 0.29320121, 0.4110452 , 0.6663981 , 0.14709608],[ 0.69421236, 0.77925693, 0.64956842, 0.13911624]])

上述命令构造了一个4*4的随机数组。

In [6]: np.mat(x)Out[6]:matrix([[ 0.52844327, 0.22339639, 0.1034135 , 0.463985 ],[ 0.14394297, 0.04331558, 0.17968244, 0.55428581],[ 0.29320121, 0.4110452 , 0.6663981 , 0.14709608],[ 0.69421236, 0.77925693, 0.64956842, 0.13911624]])In [7]: randMat=np.mat(x)

调用mat()函数将数组转行为矩阵。

In [8]: randMat.IOut[8]:matrix([[ 5.20712532, -4.48860333, 3.32227592, -2.99571552],[-5.6330336 , 4.87766411, -6.17839321, 5.88601676],[ 1.49156708, -1.72882662, 4.23683893, -2.56636519],[-1.3955605 , 3.14903216, -1.75339714, 1.14992431]])In [9]: invRandMat=randMat.I

.I 操作符实现了矩阵的求逆运算。

In [10]: randMat*invRandMatOut[10]:matrix([[ 1.00000000e+00, -4.44089210e-16, 4.44089210e-16,-2.22044605e-16],[ 0.00000000e+00, 1.00000000e+00, 0.00000000e+00,0.00000000e+00],[ 0.00000000e+00, 0.00000000e+00, 1.00000000e+00,0.00000000e+00],[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,1.00000000e+00]])In [11]: myEye=randMat*invRandMat

执行了矩阵乘法,得到矩阵与其逆矩阵相乘的结果。

In [13]: myEye-np.eye(4)Out[13]:matrix([[ 0.00000000e+00, -4.44089210e-16, 4.44089210e-16,-2.22044605e-16],[ 0.00000000e+00, -1.11022302e-16, 0.00000000e+00,0.00000000e+00],[ 0.00000000e+00, 0.00000000e+00, -4.44089210e-16,0.00000000e+00],[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,4.44089210e-16]])

函数eye(4)创建了4*4的单位矩阵

1.8 本章小结

学习机器学习算法,必须了解数据实例,每个数据实例由多个特征值组成。分类是基本的机器学习任务,它分析未分类数据,以确定如何将其放入已知群组中。为了构建和训练分类器,必须首先输入大量已知分类的数据,我们将这些数据称之为训练样本集。

参考:《机器学习实战》,作者: Peter Harrington ,出版社: 人民邮电出版社
原作名: Machine Learning in Action,译者: 曲亚东 / 李锐 / 王斌 / 李鹏

原创粉丝点击