机器学习概要

机器学习总篇

什么是机器学习

简单的定义 : 机器学习是通过编程,让计算机可以从数据中总结规律,并根据已有数据进行对未知数据的推测.
广义定义

机器学习是让计算机具有学习的能力,无需进行明确的编程

工程定义

计算机程序理由经验 E 学习任务 T ,性能是 P 如果针对任务 T 的性能 P 随着经验 E 不断增长, 则成为机器学习. --汤姆·米切尔 1997

机器学习可以用来做什么

  • 数据挖掘
  • 一些无法通过手动编程来编写的应用 : 如自然语言处理,计算机视觉
  • 一些自助式的程序,如推荐系统
  • 理解人类是如何学习的

机器学习系统的类型

机器学习分为很多类

  • 根据是否是在人类监督下训练 : 分为监督学习和非监督学习以及半监督学习和强化学习
  • 根据是否可以动态渐进学习 : 分为在线学习和批量学习
  • 根据是否是通过简单的比较新的数据点和已知的数据点,或者在训练数据中进行模式识别,以建立一个预测模型,就像科学家所做的那样 : 基于实例学习 vs基于模型学习

1. 监督学习/非监督学习

1.1 监督学
监督学习 : 就是带有监督的学习,即已知数据集的结果,在训练模型时根据数据的结果不断调整模型,从而得到一个性能更好的模型。
监督学习主要有两个常见的典型的任务 --分类和回归。
常见算法有逻辑回归(Logistic Regression)和反向传递神经网络(Back Propagation Neural Network)。
① 分类
分类问题主要就是预测新数据的类别问题。也可以理解为结果是非连续的预测 如 是否 对错 等

② 回归
回归问题主要是预测目标数值。即结果是连续的预测 如 房子的价格等

ps: 分类也可以用来进行回归 反之亦然. 如 逻辑回归通常用来进行分类,它可以得出一个概率值,然后选择最大类别的概率作为类别

常用的监督学习算法有:
K近邻算法
线性回归
逻辑回归
支持向量机(SVM)
决策树和随机森林
神经网络

1.2 非监督学习
和监督学习相反,非监督学习就是没有已知结果的数据集。
非监督主要有四类 : 分别是聚类、降维、异常检测和关联规则学习。常见算法包括Apriori算法以及k-Means算法。

① 聚类
聚类就是将数据根据一定的规则分成多个类,通常是采用相似性。

可视化算法也是极佳的非监督学习案例:给算法大量复杂的且不加标签的数据,算法输出数据的2D或3D图像。

② 降维
降维的目的是简化数据、但是不能失去大部分信息。做法之一是合并若干相关的特征。*如,汽车的里程数与车龄高度相关,降维算法就会将它们合并成一个,表示汽车的磨损。*这叫做特征提取。

ps:降维有助于提高训练速度.

③ 异常检测
异常检测的系统使用正常值训练的,当它碰到一个新实例,它可以判断这个新实例是像正常值还是异常值。

④ 关联规则学习
它的目标是挖掘大量数据以发现属性间有趣的关系。如,你可能发现买了尿布的人也会啤酒。

下面是一些最重要的非监督学习算法:
1.聚类
K 均值
层次聚类分析(Hierarchical Cluster Analysis, HCA)
期望最大值
2.可视化和降维
主成分分析(Principal Component Analysis, PCA)
核主成分分析
局部线性嵌入(Locally-Linear Embedding, LLE)
t-分布邻域嵌入算法(t-distributed Stochastic Neighbor Embedding, t-SNE)
3.关联性规则学习
Apriori 算法
Eclat算法

半监督学习如图论推理算法(Graph Inference)或者拉普拉斯支持向量机(Laplacian SVM.)等。

机器学习存在的问题

  1. 数据量太少
  2. 数据问题,包括没有代表性数据和质量差
  3. 不相关特征
  4. 模型过拟合或者欠拟合

如何判断模型的好坏

  1. 数据集可以分为训练集和测试集
  2. 对数据进行交叉验证

一般在训练模型前,我们会将数据集分成两个集合,分别是训练集和测试集,通常 8:2 的比例,也就是 80% 的数据作为训练集,剩余是测试集。然后采用训练集训练模型,在测试集上用按照学习的问题采用对应评估指标评估模型的性能,比如分类问题,一般就是采用分类的准确率或者错误率作为评估的标准。
但这种划分数据集的方法,存在一个问题,就是如果需要调节超参数,比如对于正则化的超参数、学习率等,继续采用测试集来进行评估不同超参数对模型性能的影响,这会导致最后在测试集上测试得到性能最好的模型,实际上是过拟合了测试集,那么模型的泛化能力也不会太好。
所以,为了解决这个问题,我们还需要为调节超参数划分一个专门的数据集,测试集应该是用于测试最终得到的模型的性能。因此,我们再划分一个叫做验证集的数据集。
一种做法是可以将所有数据按照一定比例划分为训练集、验证集和测试集,比如按照 6:2:2 的比例划分;当然更通常的做法是采用交叉验证:训练集分成互补的子集,每个模型用不同的子集训练,再用剩下的子集验证。一旦确定模型类型和超参数,最终的模型使用这些超参数和全部的训练集进行训练,用测试集得到推广误差率。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值