机器学习 第一章 机器学习基础


机器学习的真实含义:利用计算机来彰显数据背后的真实含义。

1.1 什么是机器学习

机器学习就是把无序的数据转换成有用的信息。

机器学习横跨计算机科学、工程技术和统计学等多个学科领域,需要多学科的专业知识。
机器学习对于任何需要解释并操作数据的领域都有所裨益。

1.2 关键术语

机器学习的主要任务就是分类
最终我们决定使用某个机器学习算法进行分类,首先需要做的就是算法训练,即学习如何分类。

训练集:用于训练机器学习算法的数据样本集合。通常我们为算法输人大量已分类数据作为算法的训练集。

目标变量:机器学习算法的预测结果,在分类算法中目标变量的类型通常是标称型的,而在回归算法中通常是连续型的。
训练样本集必须确定知道目标变量的值,以便机器学习算法可以发现特征和目标变量之间的关系。
我们通常将分类问题中的目标变量称为类别,并假定分类问题只存在有限个数的类别。

训练数据和测试数据:为了测试机器学习算法的效果,通常使用两套独立的样本集,即训练数据和测试数据。
当机器学习程序开始运行时,使用训练样本集作为算法的输人,训练完成之后输人测试样本。输入测试样本时并不提供测试样本的目标变量,由程序决定样本属于哪个类别。
比较测试样本预测的目标变量值与实际样本类别之间的差别,就可以得出算法的实际精确度。

知识表示:可以理解为输入数据经过算法后的输出。
知识表示可以采用规则集的形式,也可以采用概率分布的形式,设置可以是训练样本集中的实例。

1.3 机器学习的主要任务

1.分类(主要任务):将实例数据划分到合适的分类中。
2.回归:主要用于预测数值型数据。

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

与监督学习相对应的是无监督学习,此时数据没有类别信息,也不会给定目标值。
在无监督学习中,将数据集合分成由类似的对象组成的多个类的过程被称为聚类;将寻找描述数值统计值的过程称为密度估计
无监督学习还可以减少数据特征的维度,以便我们可以使用二维或者三维图形更加直观地展示数据信息。

下表列出了机器学习的主要任务,以及解决相应问题的算法:

监督学习的用途无监督学习的用途
k-近邻算法、朴素贝叶斯算法、
支持向量机、决策树、
线性回归、局部加权线性回归、
Ridge回归、Lasso最小回归系数估计
K-均值、最大期望算法、
DBSCAN、Parzen窗设计

1.4 如何选择合适的算法

  • 上表的算法中选择实际可用的算法,必须考虑两个问题:
    1. 使用机器学习算法的目的,想要算法完成何种任务;
    2. 需要分析或收集的数据是什么。

一、首先考虑使用机器算法的目的。
Step1:如果想要预测目标变量的值,则可以选择监督学习算法
Step2:确定监督学习算法后,需要进一步确定目标变量类型。
目标变量是离散型,如:是/否、1/2/3、A/B/C或者红/黄/黑 等,选择分类器算法
目标变量是连续型,如:0.0100.00、-999999、-∞~+∞等,选择回归算法
Step3:如果不想要预测目标变量的值,则可以选择无监督学习算法
Step4:进一步分析是否需要将数据划分成离散的组。
如果这是唯一的需求,则使用聚类算法
如果还需要估计数据和每一个分组的相似程度,则需要使用密度估计算法

二、其次需要考虑的是数据问题。
主要应该了解数据的以下特征:
1、特征值是离散型变量还是连续型变量
2、特征值中是否存在缺失的值,何种原因造成缺失值
3、数据中是否存在异常值
4、某个特征发生的频率如何
等等。
充分了解上面的数据特征可以缩短选择机器学习算法的时间。

我们只能在一定程度上缩小算法的选择范围,一般并不存在最好的算法或者可以给出最好结果的算法,要尝试不同算法的执行效果。
对于所选的每种算法,都可以使用其他的机器学习技术来改进其技能。

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

  1. 收集数据: 收集样本数据。
  2. 准备输入数据: 确保数据格式符合要求。
  3. 分析输入数据:确保数据集中没有垃圾数据。
  4. 训练算法:将前两步得到的数据输入到算法中,从而抽取知识或者信息。这里得到的知识需要存储为计算机可以处理的格式,方便后续步骤的使用。
    若采用无监督学习算法,由于不存在目标变量值,故而也不需要训练算法、所有与算法相关的内容都集中在第五步。
  5. 测试算法: 这步将实际使用第四步机器学习得到的知识信息。为了评估算法,必须测试算法工作的效果。
    对于监督学习,必须已知用于估算算法的目标变量值;
    对于无监督学习,也必须用其他的评测手段来检测算法的成功率。
  6. 使用算法:将机器学习算法转换成应用程序,执行实际操作,以检验上述步骤是否可以在实际环境中正常工作。

1.6 Python语言的优势

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

Python可以快速实现系统,可以帮助我们快速地检验算法或者思想是否正确。

1.7 NumPy函数库基础

机器学习算法涉及许多线性代数知识,因此在使用Python语言构造机器学习应用时,会经常使用NumPy函数库。

NumPy矩阵与数组的区别
NumPy函数库中存在两种不同的数据类型(矩阵matrix和数组array),都可以用于处理行列表示的数字元素。它们虽然看起来很相似,但是在这两个数据类型上执行相同的数学运算可能得到不同的结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值