目录
机器学习基础
何谓机器学习
概念:机器学习就是把无序的数据转换成有用的信息。
机器学习横跨计算机科学、工程技术和统计学等多个学科,需要多学科的专业知识。
机器学习对于任何需要解释并操作数据的领域都有所裨益。
关键术语
特征(属性),
类别:常将分类问题中的目标变量称为类别,
在分类算法中目标变量的类型通常是标称型的, 而在回归算法中通常是连续型的。
特征或者属性通常是训练样本集的列,它们是独立测量得到的结果,多个特征联系在一 起共同组成一个训练样本。
为了测试机器学习算法的效果,通常使用两套独立的样本集:训练数据和测试数据。当机器 学习程序开始运行时,使用训练样本集作为算法的输入,训练完成之后输入测试样本。输入测试 样本时并不提供测试样本的目标变量,由程序决定样本属于哪个类别。比较测试样本预测的目标 变量值与实际样本类别之间的差别,就可以得出算法的实际精确度。
经过测试满足精确度要求,是否我们就可以看到机器已经学会他要完成的任务?这部分工作称之为知识表示。知识表示可以采用规则集的形式,也可以 采用概率分布的形式,甚至可以是训练样本集中的一个实例。
机器学习的任务
监督学习与无监督学习
监督学习
任务 | 算法 |
---|---|
k-临近算法 | 线性回归 |
朴素贝叶斯算法 | 局部加权线性回归 |
- 支持向量机 - | - Ridge回归 - |
- 决策树 - | - lasso最小回归系数估计 - |
无监督学习
任务 | 算法 |
---|---|
K-均值 | 最大期望算法 |
DBSCAN | Parzen窗设计 |
如何选择合适的算法
要考虑两点:
1.使用机器学习 算法的目的,想要算法完成何种任务
2.需要分析或收集的数据是什么
首先考虑使用机器学习算法的目的。如果想要预测目标变量的值,则可以选择监督学习算法, 否则可以选择无监督学习算法。
确定选择监督学习算法之后,需要进一步确定目标变量类型,如果目标变量是离散型,则可以选择分类器算法;如果目 标变量是连续型的数值,则需要选择回归算法。
如果不想预测目标变量的值,则可以选择无监督学习算法。进一步分析是否需要将数据划分 为离散的组。如果这是唯一的需求,则使用聚类算法;如果还需要估计数据与每个分组的相似程度,则需要使用密度估计算法。
其次需要考虑的是数据问题。主要应该了解数据的以下特性:特征值是离散型变量还是连续型变量,特征值中是否存在缺失的值,何种原因造成缺失值,数据中是否存在异常值,某个特征发生 的频率如何(是否罕见得如同海底捞针),等等。充分了解上面提到的这些数据特性可以缩短选择机器学习算法的时间
开发机器学习应用程序的步骤
(1)收集数据
(2)准备输入数据
(3)分析输入数据
(4)训练算法
(5)测试算法
(6)使用算法
Python语言的优势
语法清晰、易于操作纯文本文件、使用广泛,存在大量开发文档
Python语言的缺点:性能问题(这一点可以通过Python来调用C的代码来弥补)
NumPy函数库基础
NumPy函数库:线性代数相关函数。
NumPy中的两种数据类型:matrix矩阵和array数组
函数:mat()--------------------将数组转化为矩阵
.I操作符-------------------------矩阵求逆
eye(n)---------------------------n阶单位矩阵
示例代码
from numpy import *
#random.rand(4,4) 生成4×4数组
randMat = mat(random.rand(4,4)) #数组转化为矩阵
#randMat.I 矩阵求逆
invRandMat = randMat.I
myEye = randMat * invRandMat #矩阵乘法
#myEye-eye(4) 误差值