赋予计算机学习数据的能力

涵盖:

1.机器学习的一般概念

2.机器学习方法的三种类型和基本术语

3.成功构建机器学习系统所需的模块

机器学习的三种不同方法

1.监督学习

2.无监督学习

3.强化学习

通过监督学习对未来事件进行预测

监督学习的主要目的是使用有类标的训练数据构建模型,我们可以使用训练得到的模型对未来数据进行预测。此外,术语监督是指训练数据集中的每个样本均有一个已知的输出项(类标label)

1.利用分类对类标进行预测

分类是监督学习的一个子类,其目的是基于对过往类标已知示例的观测与学习,实现对新样本类标的预测。这些类标是离散的、无序的值,他们可以视为样本的组别信息。

2.使用回归预测连续输出值

通过强化学习解决交互式问题

强化学习的目标是构建一个系统(Agent),在与环境(environment)交互的过程中提高系统的性能。环境的当前状态信息中通常包含一个反馈(reward)信号,我们可以将强化学习视为与监督学习相关的一个领域。然而,在强化学习中,这个反馈值不是一个确定的类标或者连续类型的值,而是一个通过反馈函数产生的对当前系统行为的评价。通过与环境的交互,Agent可以通过强化学习来得到一系列行为,通过探索性的试错或者借助精心设计的激励系统使得正向反馈最大化。

通过无监督学习发现数据本身潜在的结构

1.通过聚类发现数据的子群

2.数据压缩中的降维

构建机器学习系统的蓝图

1.数据预处理

为了尽可能发挥机器学习算法的性能,往往对原始数据的格式等有一些特定的要求,但原始数据很少能达到此标准。因此,数据预处理是机器学习应用过程中必不可少的重要步骤之一。

某些属性间可能存在较高的关联,因此存在一定的数据冗余。在此情况下,使用数据降维技术将数据压缩到相对低维度的子空间是非常有用的。数据降维不仅能够使得所需的存储空间更小,而且还能够使学习算法运行得更快。

2.选择预测模型类型并进行训练

目前已经有多种不同大的机器学习算法用来解决不同的问题。“天下没有免费的午餐”中,我们可以总结出重要的一点:我们无法真正免费使用学习算法。举例来说:任何分类算法都有其内在的局限性,如果我们不对分类任务预先做一些设定,没有任何一个分类模型会比其他模型更具优势。

3.模型验证与使用未知数据及进行预测

在使用训练数据集构建出一个模型之后,可以采用测试数据集对模型进行测试,预测该模型在未知数据上的表现并对模型的泛化误差进行评估。如果我们对模型的评估结果表示满意,就可以使用此模型对以后新的未知数据进行预测。有一点需要注意,之前所提到的特征缩放、降维等步骤中所需的参数,只可以从训练数据集中获取,并能够应用于测试数据集及新的数据样本,但仅在测试集上对模型进行性能评估或许无法侦测模型是否被过度优化。

《Python 机器学习》笔记(一)的更多相关文章

  1. python程序设计语言笔记 第一部分 程序设计基础

    1.1.1中央处理器(CPU) cpu是计算机的大脑,它从内存中获取指令然后执行这些指令,CPU通常由控制单元和逻辑单元组成. 控制单元用来控制和协调除cpu之外的其他组件的动作. 算数单元用来完成数 ...

  2. C程序设计语言笔记-第一章

     The C Programming language notes 一 基础变量类型.运算符和判断循环         char                 字符型  character      ...

  3. 北京大学Cousera学习笔记--6-计算导论与C语言基础--计算机的基本原理-认识程序设计语言 如何学习

    1.是一门高级程序语言 低级语言-机器语言(二进制) 汇编语言-load add save mult 高级语言:有利于人们编写理解 2.C语言的规范定义非常的宽泛 1.long型数据长度不短于int型 ...

  4. MOOC 编译原理笔记(一):编译原理概述以及程序设计语言的定义

    编译原理概述 什么是编译程序 编译程序指:把某一种高级语言程序等价地转换成另一张低级语言程序(如汇编语言或机器代码)的程序. 高级语言程序-翻译->机器语言程序-运行->结果. 其中编译程 ...

  5. 20145213《Java程序设计学习笔记》第六周学习总结

    20145213<Java程序设计学习笔记>第六周学习总结 说在前面的话 上篇博客中娄老师指出我因为数据结构基础薄弱,才导致对第九章内容浅尝遏止地认知.在这里我还要自我批评一下,其实我事后 ...

  6. javascript高级程序设计阅读笔记(一)

    javascript高级程序设计阅读笔记(一) 工作之余开发些web应用作为兴趣,在交互方面需要掌握javascript和css.HTML5等技术,因此读书笔记是必要的. javascript简介 J ...

  7. 《c++程序设计》笔记

    本文是学习谭浩强老师的<c++程序设计>后的笔记. 1.概述 c++是贝尔实验室在c语言的基础上发展而来,与c兼容.用c语言写的程序可以不加修改用于c++.从c++的名字可以看出它是c的超 ...

  8. 003-scanf函数使用和表达式-C语言笔记

    003-scanf函数使用和表达式-C语言笔记 学习目标 1.[掌握]输入函数scanf的基本使用方法 2.[掌握]输入函数scanf运行原理和缓冲区理解 3.[掌握]算术运算符和算术表达式的使用 4 ...

  9. 操作系统和程序设计语言的API使用的字符编码分析

     1.Java的运行环境中,String是什么编码? 使用java做程序设计语言,字符编码是和jvm相关的,和操作系统无关. java默认的编码是jvm在安装的时候就确定了的,它是根据你的系统的环境确 ...

  10. 扩展《C程序设计语言》练习2-3程序通用性

    最近开始自学C语言,在看K&R的<C程序设计语言>.练习2-3要求写一个函数,将输入的十六进制数字字符串转换成与之等价的整数值,配套答案没有扩展程序的通用性,所以我就稍微改造改造. ...

随机推荐

  1. Xcode, does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE) 解决办法

    在Build Settings中找到Enable Bitcode项,设置为如下: 参考:http://blog.csdn.net/soindy/article/details/48519363

  2. 李洪强iOS开发之OC[003] - 用钥匙串存储信息模拟登陆

  3. SecureCRT中的vim出现1H特殊字符

    问题原因:由于采用了UTF_8编码方式导致的. 解决方法:把字符编码改为:GB18030即可.如图:

  4. start-stop-daemon

    start-stop-daemon是OpenRC计划的一部分,这个程序最先出现在Debian系的Linux发行版中,这里有个比较古老的手册页面,更详细更直观的办法当然是通过man start-stop ...

  5. Leetcode392. Is Subsequence

    Description Given a string s and a string t, check if s is subsequence of t. You may assume that the ...

  6. hdu3208 Power of Integer

    /** 题目:H - Power of Integer 链接:https://vjudge.net/contest/152887#problem/H 题意:给出区间[a, b],问你区间[a, b]所 ...

  7. jQuery 数据操作函数

    函数 描述 .clearQueue() 从队列中删除所有未运行的项目. .data() 存储与匹配元素相关的任意数据. jQuery.data() 存储与指定元素相关的任意数据. .dequeue() ...

  8. python 左移右移 2个数交换

    左移右移的能够使得数字*2或者/2 那*3怎么办,就左移一位然后再+ 经典面试题: 1.交换2个数,不用temp   a=10  b=12 1.1 a = a + b = 22 b = a - b = ...

  9. GoogleMap-------Google Play services SDK的下载和配置

    前言:在android开发项目中当要使用GoogleMap需要有Google Maps Android API的支持,而他包含在了Google Play services SDK中,所以本文将介绍如何 ...

  10. struts2之constant 讲解 (转)

    struts.serve.static.browserCache 该属性设置浏览器是否缓存静态内容.当应用处于开发阶段时,我们希望每次请求都获得服务器的最新响应,则可设置该属性为false. stru ...