机器学习(一)——机器学习概论

天地一逆旅

同悲万古尘

前言

今天起便要正式开始学习《Hands-On Machine Learning with Scikit-Learn & TensorFlow》这本书了,因此之后的Blog都会基于这本书以及Python3.5Scikit-LearnTensorFlow,也希望自己有点产出,与大家多多分享知识,同时记录下自己的学习过程,成就感满满哦!


介绍

《Hands-On Machine Learning with Scikit-Learn & TensorFlow》

image

本书中译版名《机器学习实战:基于Scikit-Learn和TensorFlow》,此书兼顾理论与实践,对于初学者来说,一般很难直接上手晦涩难懂的TensorFlow API,且缺乏实践经验。本书则是一个相对容易的选择,本书以帮数据分析人员快速入门机器学习并找到工作为目标,逻辑清晰,学习路线合理,十分适合初学者。且已有中译版,可中英对照,对于提升自己有很大帮助。

Scikit-Learn

Scikit-learn项目最早由数据科学家David Cournapeau在2007年发起,需要NumPy和SciPy等其他包的支持,是Python语言中专门针对机器学习应用而发展起来的一款开源框架。

TensorFlow

Tensorflow是广泛使用的实现机器学习以及其它涉及大量数学运算的算法库之一。Tensorflow由Google开发,是GitHub上最受欢迎的机器学习库之一。


机器学习概览

定义

机器学习是一门能够让编程计算机从数据中学习的计算机科学。

机器学习与传统方法区别

传统的编程方法需要三个步骤:

  1. 研究问题,找到问题的规律
  2. 根据找到的规律,设计实现解决问题的算法
  3. 测试程序,重复1、2两步,直到满足需求
image

机器学习方法的步骤:

  1. 研究问题
  2. 基于数据,训练机器学习算法
  3. 测试模型
image

机器学习方法的优势

  • 简化现有的需要大量手动调整或者规则特别复杂的程序,并提升执行表现
  • 可应用于太过复杂以至于传统算法无法解决的问题
  • 问题条件发生变化时,可以自适应新数据,不需要像传统方法一样手动回头重改
  • 从复杂问题和海量数据中提取知识

机器学习的分类

  • 是否在人类监督下训练:
  1. 监督式学习(supervised learning)
  2. 无监督式学习(unsupervised learning)
  3. 半监督式学习(semisupervised learning)
  4. 强化学习(Reinforcement Learning)
  • 是否可以动态地进行增量学习:
  1. 在线学习(online learning)
  2. 批量学习(batch learning)
  • 是否需要建立模型:
  1. 基于实例的学习(instance-based learning):
    简单地将新数据点与已知的数据点进行匹配
  2. 基于模型的学习 (model-based learning):
    对训练数据进行模式检测,然后建立一个预测模型

机器学习方法简介

监督/无监督式学习

监督式学习中,需要经过标记的训练数据。分类问题是典型的监督式学习。另一种典型的监督式学习是回归问题,也就是给一定的特征来预测一个目标数值。以下是一些重要的监督式学习的算法:

  • K-近邻算法(k-Nearest Neighbors)
  • 线性回归(Linear Regression)
  • 逻辑回归(Logistic Regression)
  • 支持向量机(Support Vector Machines)
  • 决策树和随机森林(Decision Trees and Random Forests)
  • 神经网络(Neural networks)

PS:一些回归算法可以运用于分类任务,反之亦然。例如逻辑回归,因为它可以输出“属于某个特定类别的概率”

image

无监督式学习的训练数据是未经标记的,以下是一些重要的监督式学习的算法:

  • 聚类算法
  1. k-平均算法(k-Means)
  2. 分层聚类分析(Hierarchical Cluster Analysis )
  3. 最大期望算法(Expectation Maximization)
  • 可视化和降维
  1. 主成分分析(PCA)
  2. 核主成分分析(Kernel PCA)
  3. 局部线性嵌入(LLE)
  4. t-分布随机近邻嵌入(t-SNE)
  • 关联规则学习
  1. Apriori
  2. Eclat
image

半监督式学习的训练数据则是部分标记的,通常是大量未标记数据和少量标记数据。例如照片托管服务,它会自动识别出照片中每一位人物,只需要你给每个人物命名,之后你上传每一张照片,系统都会自动识别那是谁了。大多数半监督式学习算法都是无监督式和监督式算法的组合,如深度信念网络(DBN),它基于一种互相堆叠的无监督式组件,叫做受限玻尔兹曼机(RBM),受限玻尔兹曼机以无监督方式训练,然后使用监督式学习对整个系统进行微调。

image

强化学习的学习系统能够观察环境,做出选择,执行操作,并获得回报,或者以负面回报方式获得惩罚。所以它必须自行学习什么事最优策略。例如AlphaGo。

image

批量/在线学习

批量学习中系统无法进行增量学习,必须使用所有数据进行训练。如果有新数据引入,则需要在完整数据集(包括新旧数据)的基础上,重新训练一个新的系统,然后停用旧系统。这也许会耗费大量时间和资源,但整个训练、评估和启动机器学习系统的过程可以轻易实现自动化,所以批量学习系统也能够适应变化。

在线学习可以循序渐进的提供训练数据,也可以采用小批量的小组数据进行训练。

image

如这类系统,需要接受持续的数据流(股票价格)同时对数据流的变化作出快速或自主的反应。

image

而对这种超大数据集的,算法则每次只加载部分数据,并针对这部分数据进行训练,然后不断重复这个过程,直到完成所有数据的训练。

基于实例/模型的学习

基于实例的学习会将新实例与已有的实例进行对比,从而进行判断或预测,一般来说这不是最好的选择,但也不会是最差的。

image

基于模型的学习首先会构建一个能够泛化当前实例的模型,然后通过模型对新实例进行判断或预测。

image

机器学习的挑战

训练数据的数量不足

一般样本集太小会导致采样噪声

训练数据不具有代表性

采样方式欠妥会导致样本偏差,代表性数据没有被纳入样本,导致拟合结果不准确

image

如图中的挪威、瑞士、卢森堡显著地改变了虚线代表的旧模型

数据质量差

训练集满是错误、异常值、噪声需要清理数据集:

  • 剔除或修复异常值
  • 如果某些实例缺少某些特征(比如%5的顾客缺少年龄),你必须决定是整体忽略这些特征,还是忽略这些缺失特征的实例,亦或是填充这些特征

无关特征

一个优秀的机器学习项目,关键是提取有效的特征,这个过程就是特征工程

  • 特征选择
  • 特征提取
  • 创造新特征

训练数据过度拟合

训练出的模型在训练集上表现良好,但泛化时却不如人意

image

如图是一个过拟合的模型,其预测就十分不准确了。

可能解决过拟合的方案:

  • 简化模型,选择较少参数的模型、减少训练数据中的属性数量、约束模型
  • 收集更多的训练数据
  • 减少训练数据中的噪声

训练数据拟合不足

与过拟合相对的概念,模型太过简单,无法描述复杂的现实问题,可能的解决方案:

  • 选择更强大的模型
  • 给学习算法更好的特征集(特征工程)
  • 减少模型中的约束(如减少正则化超参数)

验证与测试

一般将数据集按80%训练、20%测试进行划分来评估模型好坏


资料

书籍资料

  1. 《Hands-On Machine Learning with Scikit-Learn & TensorFlow》 ——机器学习实战

网络资源

  1. Scikit-Learn ——官网及文档
  2. Tensorflow ——官网及文档
  3. Aurélien Geron ——《Hands-On Machine Learning with Scikit-Learn & TensorFlow》作者GitHub
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容