Google机器学习笔记 4-5-6 分类器

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吧~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技评论

开发 | Keras版faster-rcnn算法详解(RPN计算)

AI科技评论按:本文首发于知乎专栏Learning Machine,作者张潇捷, AI科技评论获其授权转载。 前段时间学完Udacity的机器学习和深度学习的课...

43611

神经图

我们可以通过在Javascript中逐步形成神经网络来发展抽象艺术。见这里的画廊(gallery)。点这里尝试Web应用程序,并从头开始不断发展自己的艺术作品!

2169
来自专栏集智的专栏

使用腾讯云 GPU 学习深度学习系列之四:深度学习的特征工程

本系列文章主要介绍如何使用 腾讯云GPU服务器 进行深度学习运算,前面主要介绍原理部分,后期则以实践为主。

2.8K4
来自专栏机器之心

入门 | 机器学习第一课:决策树学习概述与实现

1633
来自专栏数据派THU

手把手教你用Python库Keras做预测(附代码)

当你在Keras中选择好最合适的深度学习模型,就可以用它在新的数据实例上做预测了。但是很多初学者不知道该怎样做好这一点,我经常能看到下面这样的问题:

867
来自专栏大数据杂谈

【Excel系列】Excel数据分析:时间序列预测

移动平均 18.1 移动平均工具的功能 “移动平均”分析工具可以基于特定的过去某段时期中变量的平均值,对未来值进行预测。移动平均值提供了由所有历史数据的简单的平...

3189
来自专栏小小挖掘机

推荐系统遇上深度学习(十三)--linUCB方法浅析及实现

上一篇中介绍了Bandit算法,并介绍了几种简单的实现,如 Epsilon-Greedy算法,Thompson sampling算法和UCB算法。

982
来自专栏ATYUN订阅号

使用Apache MXNet分类交通标志图像

有许多深度学习的框架,例如TensorFlow、Keras、Torch和Caffe,Apache MXNet由于其在多个GPU上的可伸缩性而受到欢迎。在这篇博文...

4666
来自专栏专知

【专知-Deeplearning4j深度学习教程03】使用多层神经网络分类MNIST数据集:图文+代码

【导读】主题链路知识是我们专知的核心功能之一,为用户提供AI领域系统性的知识学习服务,一站式学习人工智能的知识,包含人工智能( 机器学习、自然语言处理、计算机视...

36011
来自专栏专知

【专知-Java Deeplearning4j深度学习教程06】用卷积神经网络CNN进行图像分类

【导读】主题链路知识是我们专知的核心功能之一,为用户提供AI领域系统性的知识学习服务,一站式学习人工智能的知识,包含人工智能( 机器学习、自然语言处理、计算机视...

87610

扫码关注云+社区