小wind的机器学习笔记(一):新手入门必须了解的重要概念

博客简介

一直在做项目或者忙课程的事情,大学学习机器学习两年多的一些笔记和思考都一直还没来得及整理。于是我写下这个系列博客回顾一下自己学过的知识,为自己巩固基础,也最好能为广大机器学习初学者提供一些帮助。
这篇文章先介绍一些新手入门必须了解的机器学习重要概念,博客参考到《Hands-On Machine Learing with Scikit-Learn & Tensorflow》、周志华老师的西瓜书、吴恩达老师的机器学习教程等,强烈推荐初学者学习这些经典的书籍。

什么是机器学习?

比较正式的定义是:一个计算机程序被定义为从经验E学习一些分类任务T和性能测量P,如果它在任务T中的性能(由P测量)随着经验E提升。
而比较通俗来讲的话机器学习就是一门能够让系统从数据中进行学习的计算机科学,让计算机不需要明确的程序也能具备学习能力。举个网上的例子:我们可以利用一些训练数据(已经做过的题),使机器能够利用它们(解题方法)分析未知数据(考场的题目)。就像考试前老师给我们预测考试会考什么、怎么做一样。

机器学习擅于解决什么问题?

机器学习非常利于解决:

  1. 不存在已知算法解决方案的复杂问题。
  2. 需要大量手动调整或者是规则约束列表超长的问题
  3. 创建可以适应环境波动的系统
  4. 帮助人类进行学习(比如数据挖掘)

机器学习的分类

机器学习种类繁多,可以根据不同情况进行分类:

  • 是否有人类的监督(监督学习、非监督学习、半监督学习以及强化学习)
  • 是否可以动态进行增量学习(在线学习和批量学习)
  • 基于实例的学习和基于模型的学习

本文主要对初学常见的监督学习、无监督学习等类别进行介绍。

监督学习

什么是监督学习?

监督学习就是根据已有的数据集(带有特征feature与对应标签label),学习或建立一个最优model,并依据该model进行新实例(提供未出现过的x)的预测(判断y)。简单来说,就是数据集中包含着x与y值(无监督学习只有特征 x,没有label y),机器可以自行找到特征与标签之间存在的关联,并优化模型的内部参数,以更好地进行预测。
监督学习的主要分类:回归(Regression)、分类(Classification)

回归(Regression)

回归的目的是预测数值型的目标值,它的目标是接受连续数据,寻找最适合数据的方程,并能够对特定值进行预测。这个方程称为回归方程,而求回归方程显然就是求该方程的回归系数,求这些回归系数的过程就是回归。

分类(Classification)

分类就好理解很多了,即对输入的数据进行分组归类。和回归最大的区别在于,分类是针对离散型的,输出的结果是有限的。垃圾邮件识别
是个典型的监督式学习分类任务:将邮件内容和他们的标签(是垃圾或者不是垃圾邮件)提供给算法模型进行学习,可以参考吴恩达机器学习视频week1

分类和回归的区别在于输出变量的类型。
定量输出称为回归,或者说是连续变量预测;
定性输出称为分类,或者说是离散变量预测。
举个例子:
预测明天的气温是多少度,这是一个回归任务;
预测明天是阴、晴还是雨,就是一个分类任务。

无监督学习

在很多实际情况中,我们的数据集只有x,并没有对应的y。在这种情况下,比起监督学习,无监督学习更像是自学,让机器学会自己做事情。其定义是:我们不知道数据集中数据、特征之间的关系,而是要根据聚类或一定的模型得到数据之间的关系
比如对于下图,我们想要对这些数据进行二分类,那么就需要通过无监督学习对数据间的内在联系进行学习。
小wind的机器学习笔记(一):新手入门必须了解的重要概念_第1张图片
常见的无监督学习算法:

  1. PCA主成分分析
  2. 关联学习
  3. 聚类算法

这时候我们可以思考一个问题,我们有一些客户数据,要将他们分成多个组,你会用监督学习还是无监督学习呢?

  1. 如果我们知道要的是怎么样的分类(如高消费欲望、低消费欲望、中等消费欲望等),那么就可以将这些客户的特征和对应的消费欲望标签输入分类算法(这时是监督学习),当训练过后就可以对新顾客进行消费欲望分组了。
  2. 如果不知道如何定义分组,那么就可以用聚类算法(这时是无监督学习)将相似的顾客分为一组。

在线学习和核外学习

当今大数据时代,很多大型互联网公司数据量极多,而且其系统要能够满足时刻变化的外界环境,则需要进行在线学习,不断导入新数据对原有的模型进行更新,可以让系统快速适应不断变化的新数据和自动化系统。
而对于我们这种个人用户来讲,更常见的是核外学习,核外学习可以处理计算机主内存无法应对的大量数据,它将数据分割成小批量,然后使用在线学习技术将小批量数据分批进行导入,在计算机计算能力范围内进行训练。

机器学习面临的主要挑战

在我们接触一个机器学习项目时,通常会遇到一些问题,而这些问题是机器学习领域常见共通难题:数据缺乏、数据质量差、数据不具有代表性、特征不具信息量,模型过于简单而欠拟合,模型过于复杂而过拟合。这些问题会在系列博客后续问题上进行讲解。

参考文章:
《Hands-On Machine Learing with Scikit-Learn & Tensorflow》
https://www.jianshu.com/p/682c88cee5a8
https://www.jianshu.com/p/bc31a3f74670

你可能感兴趣的:(机器学习笔记,机器学习)