2018-06-30 TensorFlow实战:SoftMax手写体MNIST识别(Python完整源码)

代码下载 softmax_mnist


数据处理——One-Hot Encoding

一、One-Hot Encoding

    One-Hot编码,又称为一位有效编码,主要是采用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效。

    在实际的机器学习的应用任务中,特征有时候并不总是连续值,有可能是一些分类值,如性别可分为“male”和“female”。在机器学习任务中,对于这样的特征,通常我们需要对其进行特征数字化,如下面的例子:

有如下三个特征属性:

性别:["male","female"]

地区:["Europe","US","Asia"]

浏览器:["Firefox","Chrome","Safari","Internet Explorer"]

对于某一个样本,如["male","US","Internet Explorer"],我们需要将这个分类值的特征数字化,最直接的方法,我们可以采用序列化的方式:[0,1,3]。但是这样的特征处理并不能直接放入机器学习算法中。

二、One-Hot Encoding的处理方法

对于上述的问题,性别的属性是二维的,同理,地区是三维的,浏览器则是四维的,这样,我们可以采用One-Hot编码的方式对上述的样本“["male","US","Internet Explorer"]”编码,“male”则对应着[1,0],同理“US”对应着[0,1,0],“Internet Explorer”对应着[0,0,0,1]。则完整的特征数字化的结果为:[1,0,0,1,0,0,0,0,1]。这样导致的一个结果就是数据会变得非常的稀疏。

三、实际的Python代码

from sklearn import preprocessing

enc = preprocessing.OneHotEncoder()

enc.fit([[0,0,3],[1,1,0],[0,2,1],[1,0,2]])

array = enc.transform([[0,1,3]]).toarray()

print array

结果:[[ 1.  0.  0.  1.  0.  0.  0.  0.  1.]]

fit中的四个代表四个训练样本,表示的是每一维的可能取值,比如“性别”这一维只有两个值:0和1,那么在四个样本中第一维是0或者1,其他依次类推


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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI派

如何使用sklearn进行在线实时预测(构建真实世界中可用的模型)

Python 作为当前机器学习中使用最多的一门编程语言,有很多对应的机器学习库,最常用的莫过于 scikit-learn 了。我们介绍下如何使用sklearn进...

25230
来自专栏大数据挖掘DT机器学习

二维机器学习测试数据生成

最近在看机器学习,讲的是线性回归和逻辑回归的内容 当然就难免写点代码来进行实验,总喜欢自己做一些数据而不只是写一个原函数再加上噪声 毕竟自己点点点出来然后得到学...

343100
来自专栏专知

【干货】手把手教你用苹果Core ML和Swift开发人脸目标识别APP

【导读】CoreML是2017年苹果WWDC发布的最令人兴奋的功能之一。它可用于将机器学习整合到应用程序中,并且全部脱机。CoreML提供的机器学习 API,包...

33660
来自专栏人工智能

用R和Keras深度学习的例子

同样是编程语言之一,R的用户长期被剥夺了参与深度学习运动的机会。随着MXNet的发布  ,情况开始发生变化,但是原始文档的频繁更新以及突破后向兼容性的变化仍然限...

2.1K00
来自专栏Petrichor的专栏

TensorFlow大本营

23240
来自专栏云时之间

深度学习与神经网络:基于自建手写字体数据集上的模型测试

12130
来自专栏CDA数据分析师

Python图像处理库:Pillow 初级教程

Pillow由PIL而来,所以该导入该库使用import PIL 本文相关的代码:https://github.com/445141126/pillow_ex...

56590
来自专栏机器之心

教程 | Adrian小哥教程:如何使用Tesseract和OpenCV执行OCR和文本识别

本教程将介绍如何使用 OpenCV OCR。我们将使用 OpenCV、Python 和 Tesseract 执行文本检测和文本识别。

70640
来自专栏机器学习算法工程师

分布式TensorFlow入门教程

深度学习在各个领域实现突破的一部分原因是我们使用了更多的数据(大数据)来训练更复杂的模型(深度神经网络),并且可以利用一些高性能并行计算设备如GPU和FPGA来...

40130
来自专栏专知

【下载】PyTorch 实现的YOLO v2目标检测算法

【导读】目标检测是计算机视觉的重要组成部分,其目的是实现图像中目标的检测。YOLO是基于深度学习方法的端到端实时目标检测系统(YOLO:实时快速目标检测)。YO...

54760

扫码关注云+社区

领取腾讯云代金券