机器学习之准备(一)
来源:互联网 发布: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,译者: 曲亚东 / 李锐 / 王斌 / 李鹏
- 机器学习之准备(一)
- 机器学习之python开发环境准备
- 机器学习面试准备
- 机器学习--准备阶段
- 机器学习软件准备
- 机器学习之基础一
- 机器学习面试准备之二、优化方法
- 机器学习面试准备之三、决策树与随机森林
- WZ机器学习面试准备
- 【ML】机器学习学前准备
- 机器学习入门前准备
- 系统学习机器学习之SVM(一)
- 机器学习笔记(一)机器学习入门之旅
- extjs学习准备(一)
- Android学习准备一
- 机器学习(一)之Linear Regression
- python机器学习之神经网络(一)
- python机器学习之神经网络(一)
- StatusBarStyle的设置
- 并查集:HDU4496-D-City(倒用并查集)
- CodeForces 671 B.Robin Hood(水~)
- HTML5之常用块级标签简介
- 删除排序数组中的重复数字
- 机器学习之准备(一)
- java模拟多线程http请求
- Android开发无法运行项目
- 简易解说拉格朗日对偶(Lagrange duality)
- hive mapreduce reducer 调优
- 2017.07.18
- 元素出栈、入栈顺序的合法性。
- springmvc+mybatis+maven项目框架搭建
- 控制台输入Int型(循环输入直至正确)