Google机器学习笔记 4-5-6 分类器
转载请注明作者:梦里风林
Google Machine Learning Recipes 4
官方中文博客 - 视频地址
Github工程地址 https://github.com/ahangchen/GoogleML
欢迎Star,也欢迎到Issue区讨论
Recipes 4 Let’s Write a Pipeline
复习与强化概念
- 监督学习基础套路
- 例子: 一个用于举报邮件的分类器
关键在于举报新的邮件
- Train vs Test:隔离训练集,测试集以验证训练效果
f(x) = y
feature: x, label: y, classifier其实就是一个feature到label的函数
可以从sklearn中import各种分类器进行训练,各种分类器有类似的接口
这些不同分类器都可以解决类似的问题
- 让算法从数据中学习到底是什么
- 拒绝手工写分类规则代码
- 本质上,是学习feature到label,从输入到输出的函数
- 从一个模型开始,用规则来定义函数
- 根据训练数据调整函数参数
- 从我们发现规律的方法中,找到model
- 比如一条划分两类点的线就是一个分类器的model,调整参数就能得到我们想要的分类器:

Example of Neural Network
Recipes 5 Writing Our First Classifier
- 从底层实现一个分类器
目标
实现一个K近邻(k-Nearest Neighbour)问题
K Nearest Neighbour

- 对于一个测试点,看它最近的邻居属于那个类别
- 考虑最近邻居的时候,我们可以综合考虑与这个点距离最近的K个点,看它们中有多少输入类别A,多少属于类别B
- 距离:两点间的直线距离(Euclidean Distance)

- 即考虑各个feature之间差异的平方和
实现
- 在Lesson4的基础上进行,我们在lesson4中使用了KNeighborsClassifier()作为分类器,现在我们要实现这个分类器
- ScrappyKNN:最简单的一个K近邻分类器
- 接口:
- fit:用于训练,将训练集的feature和label作为输入
- predict: prediction,将测试集的feature作为输入,输出预测的label
- Random Classifier
- 随机挑一个label作为预测输出,由于我们是在三种花的结果中随机挑取一种花作为结果,所以结果大概在33%
- KNN:
- 设置k=1,也就是我们只考虑最近的那个点属于那个类别
- 用scipy.spatial.distance来计算距离
- 返回测试点最近邻的label
结论
- 准确率:90%以上(这里也可能看出feature选得好的重要性)
- 优点:非常简单
- 缺点:耗时;不能表示复杂的东西;
Recipes 6 Train an Image Classifier with TensorFlow for Poets
目标
区分图片之间的差异
工具
TensorFlow for Poets
- 高度封装
- 效果奇佳
- 只需要目录中的图片和目录名字作为label,不需要预设feature
数据
- 找出图片中五种花的差异
- 下载地址:http://download.tensorflow.org/example_images/flower_photos.tgz
- 如果你想要用其他的图片类型,你只需要创建一个新的文件夹,放入对应类型的100张以上的图片
- 不需要像Iris数据集那样有预设的feature
分类器
- TensorFlow
- TensorFlow擅长于Deep learning
- 由于提取特征很困难,因为世界上的变数太多了,所以深度学习自动提取特征的功能变得很重要
- TFLearn:高阶的机器学习库
- Image Classifier
- 直接从像素级数据提取特征
- 神经网络
- 可以学习更复杂的函数
实现
- 由于官方视频教程中的语法格式使用的是nightly版本tensorflow的格式,因此对代码稍作修改
- 参考Github·TensorFlow·Issue
- 参考Github·TensorFlow·Skflow·Example
- TensorFlow处理Iris问题
- TensorFlow直接识别文件夹图片
- 耗时大概20分钟
- 基于Inception训练分类器retrain
- Transfer Learning:重用Inception的一些参数
后话
- 图像识别关键在于:Diversity and quantity
- Diversity:样本多样性越多,对新事物的预测能力越强
- Quantity:样本数量越多,分类器越强大
觉得我的文章对您有帮助的话,就给个star吧~
Google机器学习笔记 4-5-6 分类器的更多相关文章
- Google机器学习笔记(七)TF.Learn 手写文字识别
转载请注明作者:梦里风林 Google Machine Learning Recipes 7 官方中文博客 - 视频地址 Github工程地址 https://github.com/ahangchen ...
- 机器学习入门 - Google机器学习速成课程 - 笔记汇总
机器学习入门 - Google机器学习速成课程 https://www.cnblogs.com/anliven/p/6107783.html MLCC简介 前提条件和准备工作 完成课程的下一步 机器学 ...
- 机器学习笔记5-Tensorflow高级API之tf.estimator
前言 本文接着上一篇继续来聊Tensorflow的接口,上一篇中用较低层的接口实现了线性模型,本篇中将用更高级的API--tf.estimator来改写线性模型. 还记得之前的文章<机器学习笔记 ...
- 【机器学习】Google机器学习工程的43条最佳实践
https://blog.csdn.net/ChenVast/article/details/81449509 本文档旨在帮助那些掌握机器学习基础知识的人从Google机器学习的最佳实践中获益.它提供 ...
- Python机器学习笔记:使用Keras进行回归预测
Keras是一个深度学习库,包含高效的数字库Theano和TensorFlow.是一个高度模块化的神经网络库,支持CPU和GPU. 本文学习的目的是学习如何加载CSV文件并使其可供Keras使用,如何 ...
- Python机器学习笔记:sklearn库的学习
网上有很多关于sklearn的学习教程,大部分都是简单的讲清楚某一方面,其实最好的教程就是官方文档. 官方文档地址:https://scikit-learn.org/stable/ (可是官方文档非常 ...
- Python机器学习笔记:不得不了解的机器学习面试知识点(1)
机器学习岗位的面试中通常会对一些常见的机器学习算法和思想进行提问,在平时的学习过程中可能对算法的理论,注意点,区别会有一定的认识,但是这些知识可能不系统,在回答的时候未必能在短时间内答出自己的认识,因 ...
- 【转】机器学习笔记之(3)——Logistic回归(逻辑斯蒂回归)
原文链接:https://blog.csdn.net/gwplovekimi/article/details/80288964 本博文为逻辑斯特回归的学习笔记.由于仅仅是学习笔记,水平有限,还望广大读 ...
- Python机器学习笔记:不得不了解的机器学习知识点(2)
之前一篇笔记: Python机器学习笔记:不得不了解的机器学习知识点(1) 1,什么样的资料集不适合用深度学习? 数据集太小,数据样本不足时,深度学习相对其它机器学习算法,没有明显优势. 数据集没有局 ...
随机推荐
- regular expression 基本语法
正则检测网址: http://regexpal.isbadguy.com/ (不包含界定符) 或 http://tool.chinaz.com/regex unicode转换工具 : htt ...
- 摆方块(贪心)P1087
描述 给你一个n*n的方格,每个方格里的数必须连续摆放如 1 2 4 3 ,下图为不连续的,请输出从左上角到右下角的对角线上的最大和 1 2 3 4 输入 ...
- python处理.seq文件
# Deal with .seq format for video sequence # Author: Kaij # The .seq file is combined with images, # ...
- Unix/Linux环境C编程入门教程(37) shell常用命令演练
cat命令 cat命令可以用来查看文件内容. cat [参数] 文件名. grep-指定文件中搜索指定字符内容. Linux的目录或文件. -path '字串' 查找路径名匹配所给字串的所有文件 ...
- jquery中使用offset()获得的div的left=0,top=0
写东西的时候要获取div的left和top,但怎么也取不到值都为0,但在chrome的console下是可以取到值的, 瞬间就纳闷了,于是乎就在网上找各种方法,大家一般的问题可能都是要获取的div被隐 ...
- Min Stack 解答
Question Design a stack that supports push, pop, top, and retrieving the minimum element in constant ...
- Oracle学习笔记(1)——查询及删除重复数据
1.查找表中多余的重复记录(根据单个字段studentid) select * from table_name where studentid in (select studentid fro ...
- 键盘code码速查表
键盘 Key Code对照表 字母和数字键的键码值(keyCode) 按键 键码 按键 键码 按键 键码 按键 键码 A 65 J 74 S 83 1 49 B 66 K 75 T 84 2 50 C ...
- HDOJ 题目分类
HDOJ 题目分类 /* * 一:简单题 */ 1000: 入门用:1001: 用高斯求和公式要防溢出1004:1012:1013: 对9取余好了1017:1021:1027: ...
- java模拟get/post提交
1:用jdk连接 String action = "xxxxxxxxxxx": URL url = new URL(action); HttpURLConnection http ...