转载请注明作者:梦里风林
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

数据

分类器

  • TensorFlow
  • TensorFlow擅长于Deep learning
  • 由于提取特征很困难,因为世界上的变数太多了,所以深度学习自动提取特征的功能变得很重要
  • TFLearn:高阶的机器学习库
  • Image Classifier
  • 直接从像素级数据提取特征
  • 神经网络
  • 可以学习更复杂的函数

实现

后话

  • 图像识别关键在于:Diversity and quantity
  • Diversity:样本多样性越多,对新事物的预测能力越强
  • Quantity:样本数量越多,分类器越强大

觉得我的文章对您有帮助的话,就给个star吧~

Google机器学习笔记 4-5-6 分类器的更多相关文章

  1. Google机器学习笔记(七)TF.Learn 手写文字识别

    转载请注明作者:梦里风林 Google Machine Learning Recipes 7 官方中文博客 - 视频地址 Github工程地址 https://github.com/ahangchen ...

  2. 机器学习入门 - Google机器学习速成课程 - 笔记汇总

    机器学习入门 - Google机器学习速成课程 https://www.cnblogs.com/anliven/p/6107783.html MLCC简介 前提条件和准备工作 完成课程的下一步 机器学 ...

  3. 机器学习笔记5-Tensorflow高级API之tf.estimator

    前言 本文接着上一篇继续来聊Tensorflow的接口,上一篇中用较低层的接口实现了线性模型,本篇中将用更高级的API--tf.estimator来改写线性模型. 还记得之前的文章<机器学习笔记 ...

  4. 【机器学习】Google机器学习工程的43条最佳实践

    https://blog.csdn.net/ChenVast/article/details/81449509 本文档旨在帮助那些掌握机器学习基础知识的人从Google机器学习的最佳实践中获益.它提供 ...

  5. Python机器学习笔记:使用Keras进行回归预测

    Keras是一个深度学习库,包含高效的数字库Theano和TensorFlow.是一个高度模块化的神经网络库,支持CPU和GPU. 本文学习的目的是学习如何加载CSV文件并使其可供Keras使用,如何 ...

  6. Python机器学习笔记:sklearn库的学习

    网上有很多关于sklearn的学习教程,大部分都是简单的讲清楚某一方面,其实最好的教程就是官方文档. 官方文档地址:https://scikit-learn.org/stable/ (可是官方文档非常 ...

  7. Python机器学习笔记:不得不了解的机器学习面试知识点(1)

    机器学习岗位的面试中通常会对一些常见的机器学习算法和思想进行提问,在平时的学习过程中可能对算法的理论,注意点,区别会有一定的认识,但是这些知识可能不系统,在回答的时候未必能在短时间内答出自己的认识,因 ...

  8. 【转】机器学习笔记之(3)——Logistic回归(逻辑斯蒂回归)

    原文链接:https://blog.csdn.net/gwplovekimi/article/details/80288964 本博文为逻辑斯特回归的学习笔记.由于仅仅是学习笔记,水平有限,还望广大读 ...

  9. Python机器学习笔记:不得不了解的机器学习知识点(2)

    之前一篇笔记: Python机器学习笔记:不得不了解的机器学习知识点(1) 1,什么样的资料集不适合用深度学习? 数据集太小,数据样本不足时,深度学习相对其它机器学习算法,没有明显优势. 数据集没有局 ...

随机推荐

  1. WPF笔记(1.10 绘图)——Hello,WPF!

    原文:WPF笔记(1.10 绘图)--Hello,WPF! 书中的代码语法过时了,改写为以下(测试通过):         <Button>            <Button.L ...

  2. ViewBag、ViewData和TempData使用方法、区别与联系

    一.区别与联系 ViewData 和 TempData 都可以传递弱类型数据,区别如下:TempData 只在当前 Action 中有效,生命周期和 View 相同:保存在Session中,Contr ...

  3. 《how to design programs》第10章表的进一步处理

    返回表的函数: 下面是一个求工资的函数: ;; wage : number  ->  number ;; to compute the total wage (at $12 per hour) ...

  4. html模块一些方法

    <pre name="code" class="python"> find_by_tag_name: @elements = $h->find ...

  5. ACM学习-POJ-1143-Number Game

    菜鸟学习ACM,纪录自己成长过程中的点滴. 学习的路上,与君共勉. ACM学习-POJ-1143-Number Game Number Game Time Limit: 1000MS   Memory ...

  6. JNI与JNA性能比较

    JNI与JNA性能比较 在介绍JNA时,提到了JNA是基于JNI的,是在JNI上封装了一层,JNI性能不如JNA.最近在网上看到篇简单的比较这两者性能的文档,感觉不错,现转载一下: 分别用JNI和JN ...

  7. JNI的替代者—使用JNA访问Java外部功能接口

    摘自:http://www.cnblogs.com/lanxuezaipiao/p/3635556.html JNI的替代者-使用JNA访问Java外部功能接口 1. JNA简单介绍 先说JNI(Ja ...

  8. poj 2395 Out of Hay(最小生成树,水)

    Description The cows have run <= N <= ,) farms (numbered ..N); Bessie starts at Farm . She'll ...

  9. python之路-SQLAlchemy

    SQLAchemy SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行S ...

  10. 通过项目逐步深入了解Mybatis<四>

    延迟加载 什么是延迟加载? resultMap可以实现高级映射(使用association.collection实现一对一及一对多映射),association.collection具备延迟加载功能. ...