zoukankan      html  css  js  c++  java
  • 机器学习笔记一:简介

    机器学习笔记一:简介

    一. 监督学习vs非监督学习,线上学习vs批量学习,基于实例vs基于模型学习

    1.机器学习定义

    机器学习是让机器通过学习数据对某些任务做得更好,而不使用确定的代码规则。

    总结一下,机器学习善于:
    需要进行大量手工调整或长串规则的问题:机器学习算法通常可以简化代码、提高性能。
    问题复杂,对于传统方法太复杂或是没有已知算法的问题 :最好的机器学习方法可以找到解决方案。
    环境有波动:机器学习算法可以适应新数据。
    洞察复杂问题和大量数据。

    2.机器学习分类

    机器学习有多种类型,可以根据如下规则进行分类:

    2.1 是否在人类监督下进行训练:监督,非监督,半监督和强化学习

    (1)监督学习:训练数据包含标签。
    如,K近邻算法、线性回归、逻辑回归、支持向量机(SVM)、决策树和随机森林、神经网络等。

    (2)非监督学习:训练数据是没有加标签的。
    如,聚类(k-均值、层次聚类分析、期望最大值);
    可视化和降维:给算法大量复杂的且不加标签的数据,算法输出数据的2D或3D图像(主成分分析、 核主成分分析、局部线性嵌入、t-分布邻域嵌入算法);
    异常检测:从训练数据集去除异常值。异常检测的系统使用正常值训练的,当它碰到一个新实例,它可以判断这个新实例是否像正常值或异常值;
    关联性规则学习(Apriori算法、Eclat算法)。

    (3)半监督学习:处理部分带标签的训练数据,通常是大量不带标签数据加上小部分带标签数据。

    (4)强化学习:学习系统在这里被称为执行者agent,可以对环境进行观察,选择和执行动作,获得奖励。然后它必须自己学习哪个是最佳方法,以得到长久的最大奖励。策略决定了执行者在给定情况下应该采取的行动。

    2.2 能否从导入的数据流进行持续学习:线上学习vs批量学习

    (1)批量学习:系统不能进行持续学习,必须用所有可用数据进行训练。缺点:用全部数据训练需要大量计算资源(CPU、内存空间、磁盘空间、磁盘I/O、网络I/O等等),如果资源有限,则无法进行训练。

    (2)线上学习:是用小批量数据实例持续地进行训练,每个学习步骤都很快且廉价,所以系统可以动态地学习到达所有数据训练效果。
    线上学习很适合系统接收连续流的数据(比如,股票价格),且需要自动对改变作出调整。当机器的内存存不下大量数据集时,可以用线上学习来训练系统,线上学习仍然是离线学习,并未部署在系统上。
    线上学习的关键点之一是学习速率的设定,学习太快会降低旧数据的影响,学习太慢对新数据不敏感。

    2.3 归纳方法不同:基于实例学习vs基于模型学习

    (1)基于实例学习:系统先用记忆学习案例,通过简单地比较新的数据点和已知的数据点,然后使用相似度测量推广到新的例子。

    (2)基于模型学习:从样本集进行归纳的方法是建立这些样本的模型,然后通过样本训练确定模型参数(优化方法),最后使用这个模型进行预测。

    3.机器学习的挑战

    (1)训练数据量不足:数据不合理,没有代表性(样本偏差),低质量数据,不相关特征

    (2)特征工程
    特征选择:在所有存在的特征中选取最有用的特征进行训练。
    特征提取:组合存在的特征,生成一个更有用的特征(如前面看到的,可以使用降维算法)。
    收集新数据创建新特征。

    (3)过拟合:发生在相对于训练数据的量和噪声,模型过于复杂的情况。
    解决办法:简化模型,可以通过选择一个参数更少的模型(比如使用线性模型,而不是高阶多项式模型)、减
    少训练数据的属性数、或限制一下模型收集更多的训练数据,减小训练数据的噪声(比如,修改数据错误和去除异常值)

    (4)欠拟合:当你的模型过于简单时就会发生,或者训练数据太少。
    解决办法:选择一个更强大的模型,带有更多参数,用更好的特征训练学习算法(特征工程),减小对模型的限制(比如,减小正规化超参数)

    4.模型测试与验证

    要知道一个模型推广到新样本的效果,唯一的办法就是真正的进行试验。

    1.训练集、测试集、验证集

    交叉验证:训练集分成互补的子集,每个模型用不同的子集训练,再用剩下的子集验证。一旦确定模型类型和超参数,最终的模型使用这些超参数和全部的训练集进行训练,用测试集得到推广误差率。

  • 相关阅读:
    【就业】腾讯VS百度
    MySQL基础知识
    PHP读取远程文件并保存
    【GTK3.0】背景设置
    【GTK】信号量(signal)大全
    c# 调用win32 api
    PHP写窗体程序
    一个苏州IT人的5年挨踢经历面试篇(之二)
    【c++ Primer 】 4.10复习题 12题(int)、(int&)和(int*)
    线段树技巧
  • 原文地址:https://www.cnblogs.com/HZL2017/p/9374271.html
Copyright © 2011-2022 走看看