用Scikit-learn和TensorFlow进行机器学习(一)
文章目录
- 机器学习概览
- 一、什么是机器学习?
- 1、定义
- 2、适用
- 二、分类
- 1、监督, 非监督, 半监督和强化学习
- (1)监督学习
- (2)非监督学习
- (3)半监督学习
- (4)强化学习
- 2、在线学习 vs 批量学习
- (1)在线学习
- (2)批量学习
- 3、基于实例学习 vs 基于模型学习
- (1)基于实例学习
- (2)基于模型学习
- 三、主要挑战
- 四、测试和确认
机器学习概览
一、什么是机器学习?
1、定义
计算机程序利用经验 E 学习任务 T, 性能是 P, 如果针对任务 T 的性能 P 随着经验 E 不断增长, 则称为机器学习。(汤姆·米切尔,1997)
2、适用
- 需要进行大量手工调整或需要拥有长串规则才能解决的问题: 机器学习算法通常可以简化代码、 提高性能。
- 问题复杂, 传统方法难以解决: 最好的机器学习方法可以找到解决方案。
- 环境有波动: 机器学习算法可以适应新数据。
- 洞察复杂问题和大量数据。
二、分类
注意下述规则可以组合
1、监督, 非监督, 半监督和强化学习
分类依据:根据训练时监督的量和类型进行分类。
(1)监督学习
分为:分类任务、回归任务
常用算法:
- K近邻算法
- 线性回归
- 逻辑回归
- 支持向量机( SVM)
- 决策树和随机森林
- 神经网络
(2)非监督学习
常用算法:
聚类
- K 均值
- 层次聚类分析( Hierarchical Cluster Analysis, HCA)
- 期望最大值
可视化和降维(简化数据、 但是不能失去大部分信息)
- 主成分分析( Principal Component Analysis, PCA)
- 核主成分分析
- 局部线性嵌入( Locally-Linear Embedding, LLE)
- t-分布邻域嵌入算法( t-distributed Stochastic Neighbor Embedding, t-SNE)
关联性规则学习(挖掘大量数据以发现属性间有趣的关系)
- Apriori 算法
- Eclat 算法
此外,还常用于异常检测( anomaly detection)
(3)半监督学习
数据形式:通常是大量不带标签数据加上小部分带标签数
据。
多数半监督学习算法是非监督和监督算法的结合。eg:深度信念网络(deep belief networks)
(4)强化学习
智能体(agent), 可以对环境进行观察(observation), 选择和执行动作(action), 获得奖励。然后它必须自己学习哪个是最佳方法( 称为策略, policy) , 以得到长久的最大奖励。 策略决定了智能体在给定情况下应该采取的行动。
2、在线学习 vs 批量学习
分类依据:是否能从导入的数据流进行持续学习
(1)在线学习
用数据实例持续地进行训练,可以一次一个或一次几个实例( 称为小批量)。 每个学习步骤都很快且廉价,所以系统可以动态地学习到达的新数据。
==》适合接收连续流的数据,且需要自动对改变作出调整。
数据的使用:
- 一旦在线学习系统学习了新的数据实例,它就不再需要这些数据了, 所以扔掉这些数据( 除非你想滚回到之前的一个状态, 再次使用数据)==》这样可以节省大量的空间。
- 核外数据(机器内存存不下大量数据集时):加载部分数据,之后训练,然后重复该过程,直到所有数据都进行了训练。
(2)批量学习
系统不能持续学习:必须用所有可用数据进行训练。
==》占用大量时间和计算资源
3、基于实例学习 vs 基于模型学习
(1)基于实例学习
记忆学习。系统先用记忆学习案例, 然后使用相似度测量推广到新的例子
(2)基于模型学习
从样本集进行归纳的方法是建立这些样本的模型, 然后使用这个模型进行预测。
三、主要挑战
- 训练数据量不足:数据不合理的有效性;
- 没有代表性的训练数据;
- 样本太小==》样本噪声
- 样本太大==》样本偏差:可能没有代表性, 如果取样方法错误的话。
- 低质量数据:错误、异常值和噪声
- 不相关的特征
- 特征工程(特征选择、特征提取、收集新数据创建新特性)
- 过拟合训练数据
- 简化模型, 可以通过选择一个参数更少的模型( 比如使用线性模型, 而不是高阶多项式模型)、 减少训练数据的属性数、 或限制一下模型(正则化)
- 收集更多的训练数据
- 减小训练数据的噪声( 比如, 修改数据错误和去除异常值)
- 欠拟合训练数据
四、测试和确认
数据集划分:训练集、验证集、测试集;
在验证集上模型和超参数,选择性能最佳的模型和超参数
用Scikit-learn和TensorFlow进行机器学习(一)相关推荐
- [转载]Scikit Learn: 在python中机器学习
原址:http://my.oschina.net/u/175377/blog/84420 目录[-] Scikit Learn: 在python中机器学习 载入示例数据 一个改变数据集大小的示例:数码 ...
- Scikit Learn: 在python中机器学习
Warning 警告:有些没能理解的句子,我以自己的理解意译. 翻译自:Scikit Learn:Machine Learning in Python 作者: Fabian Pedregosa, Ga ...
- scikit learn、tensorflow、keras区别
参考:简书-刘敬:https://www.jianshu.com/p/0837b7c6ce10,感谢 一. 功能不同 Scikit-learn(sklearn)的定位是通用机器学习库 TensorFl ...
- python scikit learn 关闭开源_Python机器学习工具:Scikit-Learn介绍与实践
Scikit-learn 简介 官方的解释很简单: Machine Learning in Python, 用python来玩机器学习. 什么是机器学习 机器学习关注的是: 计算机程序如何随着经验积累 ...
- Hands On Machine Learning with Scikit Learn and TensorFlow(第三章)
MNIST 从sklearn自带函数中导入NMIST 第一次导入可能会出错,从这里下载https://github.com/amplab/datascience-sp14/blob/master/la ...
- Hands On Machine Learning with Scikit Learn and TensorFlow(第十章)
Oscar帮助你寻找好的超参数组合. 每个隐藏层神经元的数量应该是逐渐减少的,因为第一层学到的低阶特征,可以在第二层组合成高阶特征 .
- scikit - learn 做文本分类
文章来源: https://my.oschina.net/u/175377/blog/84420 Scikit Learn: 在python中机器学习 Warning 警告:有些没能理解的句子,我以自 ...
- 机器学习与Scikit Learn学习库
摘要: 本文介绍机器学习相关的学习库Scikit Learn,包含其安装及具体识别手写体数字案例,适合机器学习初学者入门Scikit Learn. 在我科研的时候,机器学习(ML)是计算机科学领域中最 ...
- 独家|盘点5个TensorFlow和机器学习课程,程序员福利(附资源)
作者:Javin Paul 翻译:蒋雨畅 校对:丁楠雅 本文约2100字,建议阅读10分钟. 本文为你介绍5个有关TensorFlow的机器学习课程,来帮助你进一步了解数据科学和人工智能. 如果您对人 ...
- 【scikit-learn】如何用Python和SciKit Learn 0.18实现神经网络
本教程的代码和数据来自于 Springboard 的博客教程.本文的作者为 Jose Portilla,他是网络教育平台 Udemy 一门数据科学类课程的讲师. GitHub 链接:https://g ...
最新文章
- Redis 命令整理
- python北京理工大学推荐的书-Python教程书籍(北理工第2版)思考练习-第三章
- 【MM模块】 Cash Discounts 现金折扣
- 计算机对英语口语考试成绩,英语口语考试人机对话得分技巧
- JQuery中的全选择器(通配符)
- 页面上传图片只能通过表单完成,且页面端向服务器端发送消息除了ajax外基本通过表单;通过JavaScript ajax代码只能post到服务器json与xml;...
- 生肖牛年元素新年促销电商PSD分层页面模板|妥妥过年!
- Journey Of Code组组员贡献率
- 【BlackHat】黑帽大会上值得关注的安全工具
- scala 构造_Scala咖喱和自动类型依赖的封闭构造
- 超薄内置DSP数字功放芯片
- juk互粉攻略set结构体
- C语言中简单冒泡排序不花里胡哨
- 记录一次尝试修复elasticsearch Data too large问题
- Linux 文件夹右下角有锁,解锁
- 身份认证协议攻击:黑客不希望你了解的事情
- Range fro mac(随机数字生成软件)
- java 2分钟_Java怎么判断他是否在2分钟内执行了任务?
- nodejs学习-fs模块
- tyvj 1031 热浪