《Python 机器学习》笔记(一)
赋予计算机学习数据的能力
涵盖:
1.机器学习的一般概念
2.机器学习方法的三种类型和基本术语
3.成功构建机器学习系统所需的模块
机器学习的三种不同方法
1.监督学习
2.无监督学习
3.强化学习
通过监督学习对未来事件进行预测
监督学习的主要目的是使用有类标的训练数据构建模型,我们可以使用训练得到的模型对未来数据进行预测。此外,术语监督是指训练数据集中的每个样本均有一个已知的输出项(类标label)
1.利用分类对类标进行预测
分类是监督学习的一个子类,其目的是基于对过往类标已知示例的观测与学习,实现对新样本类标的预测。这些类标是离散的、无序的值,他们可以视为样本的组别信息。
2.使用回归预测连续输出值
通过强化学习解决交互式问题
强化学习的目标是构建一个系统(Agent),在与环境(environment)交互的过程中提高系统的性能。环境的当前状态信息中通常包含一个反馈(reward)信号,我们可以将强化学习视为与监督学习相关的一个领域。然而,在强化学习中,这个反馈值不是一个确定的类标或者连续类型的值,而是一个通过反馈函数产生的对当前系统行为的评价。通过与环境的交互,Agent可以通过强化学习来得到一系列行为,通过探索性的试错或者借助精心设计的激励系统使得正向反馈最大化。
通过无监督学习发现数据本身潜在的结构
1.通过聚类发现数据的子群
2.数据压缩中的降维
构建机器学习系统的蓝图
1.数据预处理
为了尽可能发挥机器学习算法的性能,往往对原始数据的格式等有一些特定的要求,但原始数据很少能达到此标准。因此,数据预处理是机器学习应用过程中必不可少的重要步骤之一。
某些属性间可能存在较高的关联,因此存在一定的数据冗余。在此情况下,使用数据降维技术将数据压缩到相对低维度的子空间是非常有用的。数据降维不仅能够使得所需的存储空间更小,而且还能够使学习算法运行得更快。
2.选择预测模型类型并进行训练
目前已经有多种不同大的机器学习算法用来解决不同的问题。“天下没有免费的午餐”中,我们可以总结出重要的一点:我们无法真正免费使用学习算法。举例来说:任何分类算法都有其内在的局限性,如果我们不对分类任务预先做一些设定,没有任何一个分类模型会比其他模型更具优势。
3.模型验证与使用未知数据及进行预测
在使用训练数据集构建出一个模型之后,可以采用测试数据集对模型进行测试,预测该模型在未知数据上的表现并对模型的泛化误差进行评估。如果我们对模型的评估结果表示满意,就可以使用此模型对以后新的未知数据进行预测。有一点需要注意,之前所提到的特征缩放、降维等步骤中所需的参数,只可以从训练数据集中获取,并能够应用于测试数据集及新的数据样本,但仅在测试集上对模型进行性能评估或许无法侦测模型是否被过度优化。
《Python 机器学习》笔记(一)的更多相关文章
- python程序设计语言笔记 第一部分 程序设计基础
1.1.1中央处理器(CPU) cpu是计算机的大脑,它从内存中获取指令然后执行这些指令,CPU通常由控制单元和逻辑单元组成. 控制单元用来控制和协调除cpu之外的其他组件的动作. 算数单元用来完成数 ...
- C程序设计语言笔记-第一章
The C Programming language notes 一 基础变量类型.运算符和判断循环 char 字符型 character ...
- 北京大学Cousera学习笔记--6-计算导论与C语言基础--计算机的基本原理-认识程序设计语言 如何学习
1.是一门高级程序语言 低级语言-机器语言(二进制) 汇编语言-load add save mult 高级语言:有利于人们编写理解 2.C语言的规范定义非常的宽泛 1.long型数据长度不短于int型 ...
- MOOC 编译原理笔记(一):编译原理概述以及程序设计语言的定义
编译原理概述 什么是编译程序 编译程序指:把某一种高级语言程序等价地转换成另一张低级语言程序(如汇编语言或机器代码)的程序. 高级语言程序-翻译->机器语言程序-运行->结果. 其中编译程 ...
- 20145213《Java程序设计学习笔记》第六周学习总结
20145213<Java程序设计学习笔记>第六周学习总结 说在前面的话 上篇博客中娄老师指出我因为数据结构基础薄弱,才导致对第九章内容浅尝遏止地认知.在这里我还要自我批评一下,其实我事后 ...
- javascript高级程序设计阅读笔记(一)
javascript高级程序设计阅读笔记(一) 工作之余开发些web应用作为兴趣,在交互方面需要掌握javascript和css.HTML5等技术,因此读书笔记是必要的. javascript简介 J ...
- 《c++程序设计》笔记
本文是学习谭浩强老师的<c++程序设计>后的笔记. 1.概述 c++是贝尔实验室在c语言的基础上发展而来,与c兼容.用c语言写的程序可以不加修改用于c++.从c++的名字可以看出它是c的超 ...
- 003-scanf函数使用和表达式-C语言笔记
003-scanf函数使用和表达式-C语言笔记 学习目标 1.[掌握]输入函数scanf的基本使用方法 2.[掌握]输入函数scanf运行原理和缓冲区理解 3.[掌握]算术运算符和算术表达式的使用 4 ...
- 操作系统和程序设计语言的API使用的字符编码分析
1.Java的运行环境中,String是什么编码? 使用java做程序设计语言,字符编码是和jvm相关的,和操作系统无关. java默认的编码是jvm在安装的时候就确定了的,它是根据你的系统的环境确 ...
- 扩展《C程序设计语言》练习2-3程序通用性
最近开始自学C语言,在看K&R的<C程序设计语言>.练习2-3要求写一个函数,将输入的十六进制数字字符串转换成与之等价的整数值,配套答案没有扩展程序的通用性,所以我就稍微改造改造. ...
随机推荐
- .NET Core环境安装
.Net Core可从https://www.microsoft.com/net/download下载 如果你使用自己喜欢的命令行工具或使用Visual Studio Code,你需要下载.NET C ...
- NTP协议
NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步.NTP基于UDP报文进行传输,使用的UDP端口 ...
- IOS设计模式的六大设计原则之迪米特法则(LOD,Law Of Demeter)
定义 狭义的迪米特法则定义:也叫最少知识原则(LKP,Least Knowledge Principle).如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用.如果其中的一个类需要调用 ...
- 虚拟机设置bios第一启动为u盘
虚拟机可以用u盘启动吗?虚拟机如何设置u盘启动?今天u启动小编亲自为大家编写u启动制作的u盘启动盘在虚拟机中的进入u盘启动的教程: 总共三步骤:安装创建虚拟机和准备u启动u盘 - 虚拟机添加u盘设备 ...
- 我的第九个java程序--spring和mybatis整合(java project)
思路:入口程序读spring的配置文件-配置文件注入给程序bean--程序拿到bean以操作对象的手法查出程序 入口程序HelloWorld.java package HelloWorld; impo ...
- springmvc 环境配置图
- 使用.NET JustDecompile来反编译你的程序代码
前言 在项目的进行中有时会碰到需要去了解由第三方所开发的程序代码或者因为年久已经遗失原始码的程序,由于因为是别人写的所以我们并没有原始码可以直接阅读,碰到这种情况我们就需要去反编译这些程序及 DLL ...
- 转载: vim使用技巧
两篇很牛的vim使用技巧 来源: ChinaUnix博客 日期: 2009.07.06 10:18 (共有条评论) 我要评论 读本文之前请注意:1. 本文的目标是提供一些vim的使用技巧,利用 ...
- Android自动化测试工具之—UiAutomator环境配置
1.相关软件下载: 1)JDK: 1.6及其以上版本 2)Eclipse 3)Android SDK 其中Eclipse和Android SDK已经被Google打包成ADT(Android Deve ...
- 《从零开始学Swift》学习笔记(Day43)——构造函数继承
原创文章,欢迎转载.转载请注明:关东升的博客 Swift中的子类构造函数的来源有两种:自己编写和从父类继承.并不是父类的所有的构造函数都能继承下来,能够从父类继承下来的构造函数是有条件的,如下所示. ...