《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要求写一个函数,将输入的十六进制数字字符串转换成与之等价的整数值,配套答案没有扩展程序的通用性,所以我就稍微改造改造. ...
随机推荐
- HIVE中join、semi join、outer join
补充说明 left outer join where is not null与left semi join的联系与区别:两者均可实现exists in操作,不同的是,前者允许右表的字段在select或 ...
- SpringCloud系列九:脱离Eureka使用Ribbon
1. 回顾 在前文的示例中,是将Ribbon与Eureka配合使用的.但是现实中可能不具备这样的条件,例如一些遗留的微服务,它们可能并没有注册到Eureka Server上, 甚至根本不是使用Spri ...
- spring boot中 使用http请求
因为项目需求,需要两个系统之间进行通信,经过一番调研,决定使用http请求. 服务端没有什么好说的,本来就是使用web 页面进行访问的,所以spring boot启动后,controller层的接口就 ...
- MVC-Model
用模型取代字典理由: **使用字典的坏处 一般情况下,存入数据和取出数据都使用“字典类型的key”,编写这些key时,编译时不会有任何的友善提示,需要手敲,容易出错. dict[@“name”] = ...
- sqlite3 PC安装及使用
sqlite3使用 1. 安装sqlite3 sudo apt-get install sqlite3 sudo apt-get install libsqlite3-dev 2. sqlite常用命 ...
- Spark Core源代码分析: RDD基础
RDD RDD初始參数:上下文和一组依赖 abstract class RDD[T: ClassTag]( @transient private var sc: SparkContext, @tran ...
- android开发的权限获取 (转载的)
访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限 获取错略位置 android.permiss ...
- 第一百八十七节,jQuery,知问前端--cookie 插件,注册成功后生成cookie,显示登录状态
jQuery,知问前端--cookie 插件 学习要点: 1.使用 cookie 插件 2.注册直接登录 Cookie 是网站用来在客户端保存识别用户的一种小文件.一般来用库可以保存用户登 录信息.购 ...
- python django -5 进阶
高级知识点包括: 静态文件处理 中间件 上传图片 Admin站点 分页 使用jquery完成ajax 管理静态文件 项目中的CSS.图片.js都是静态文件 配置静态文件 在settings 文件中定义 ...
- Openstack(Kilo)安装系列之环境准备(二)
控制节点.网络节点.计算节点: 一.配置源 1.配置EPEL源 yum install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-rel ...