【Tensorflow_DL_Note3】深度学习中的数据处理及其可视化

40人阅读 评论(0) 收藏 举报
分类:
#coding=UTF-8
#=======================================================================================================================
#文件说明:
#       Python数据类库的使用---数据的处理及其Python数据可视化编程的实战
#开发环境:
#       Win10+Tensorflow+OpenCv_python3.4+PyCharm5.0.3+Python3.5
#时间地点:
#       陕西师范大学.文津楼  2018.4.16
#作    者:
#       马卫飞
#=======================================================================================================================
#=======================================================================================================================
#文件说明:
#       本节博主将使用Python对【数据的处理】和【数据的可视化】进行简单的介绍,主要学习Python和Python数据可视化方面的内容。
#一 NumPy
#      [1]NumPy(https://pypi.python.org/pypi/numpy)是一个非常有名的Python科学计算工具包,其中包含了大量有用的思想,比如:
#               [1]数组对象(用来表示向量、矩阵、图像等),以及线性代数函数
#               [2]数组对象可以帮你实现【数组】中的重要操作,比如:矩阵的乘积、转置、解方程系统、向量乘积和归一化,这些都为图像的变形、
#                  对变形进行建模、图像的分类、图像的聚类提供了基础。
#      [2]对于机器学习来说,数据是一切的基础。而一切数据又都不是单一存在的,其构成往往由很多【特征值】决定。
#      [3]对于【数据】来说,在进行机器学习之前,需要对【数据】进行基本的【分析】和【处理】;首选,需要知道数据集合中数据的多少和每个数据
#         所拥有的属性的个数,对于程序设计人员和科研人员来说,这些都是很简单的事,但是,对于机器学习的模型来说,这些事必不可少的。
#      [4]除此之外,对于【数据集合】来说,【缺失值】的处理也是一个非常重要的过程。最简单的处理方法是对具有【缺失值】数据进行整体的删除。
#         问题在于,机器学习的数据往往来源于社会,因此,可能数据集合中大多数的数据都会有某些属性缺失的问题,而解决的方法往往是采用【均值】
#         或者【目标数据】近似的【数据特征属性】代替。
#      [5]下面,从一个小例子开始:首先,我们建立一个包含【数据集合】的【数据矩阵】,之后,使用不同的方法对其进行处理。
#=======================================================================================================================
import numpy as np                                #【1】导入numpy模块

dataSet = np.mat([[1, 200,  105, 3, False],       #【2】使用numpy中的mat()方法,构建一个数据矩阵
                  [2, 165,  80,  2, False],
                  [3, 184.5,120, 2, False],
                  [4, 116,  60.8,1, False],
                  [5, 270,  150, 4, True]])
rowNum    = 0                                     #【3】rowNum是引入的计算行数的变量
columnNum = 0                                     #【4】columnNum是引入的,计算列数的变量

for line in dataSet:                              #【5】使用for循环将dataSet中的数据读入到line中,而Meizu读一行,rowNum变量加1
    rowNum    += 1
    columnNum += 1

print(rowNum)
print(columnNum)
print(dataSet.size)                               #【6】dataSet.size计算数据集合中全部数据的数据量
#=======================================================================================================================
#文件说明:
#       【1】对NumPy,读者只需要知道,NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套
#            列表结构要高效的多。
#       【2】需要说明的是,numpy工具包将所有的【数据】转化成一个【矩阵】的形式进行处理,其中,具体的数据可以通过二元的形式读出,如下所示
#=======================================================================================================================
print(print(dataSet[0,3]))
print(print(dataSet[0,4]))
#=======================================================================================================================
#文件说明:
#       【1】细心的读者可能已经注意到,下标为[0,3]的具体数据对应的是矩阵中第1行第4列的数据,其值为3,而打印的结果为3.0
#       【2】如果需要打印全部的数据,就调用如下的方法
#=======================================================================================================================
print(dataSet)

#coding=UTF-8
#=======================================================================================================================
#文件说明:
#       Python数据类库的使用---数据的处理及其Python数据可视化编程的实战
#开发环境:
#       Win10+Tensorflow+OpenCv_python3.4+PyCharm5.0.3+Python3.5
#时间地点:
#       陕西师范大学.文津楼  2018.4.16
#作    者:
#       马卫飞
#=======================================================================================================================
#=======================================================================================================================
#模块说明:
#       基于【统计分析】的数据处理
#知识补充:
#      【1】列表:列表是python的内置对象之一,列表是Python中最具灵活性的【有序】集合的【对象类型】
#               [1]与【字符串】不同的是,列表可以包含【任何类型的对象】,数字、字符串甚至其他的【列表】
#               [2]同样,与【字符串】不同,【列表】都是【可变对象】,它们支持在原位置处的修改操作,可以通过指定的偏移值和分片、列表方法
#                  调用、删除等方法来实现
#      【2】除了最基本的数据记录和提取之外,【机器学习】还需要知道一些【基本数据】的【统计量】,例如,每一类型数据的【均值】、【方差】、
#          以及【标准差】等,当然,这些【统计分析】中的【统计量】并不需要你自己去计算,numpy提供了相关的方法。
#=======================================================================================================================
import numpy as np                                #【1】导入numpy模块

dataSet = np.mat([[1, 200,  105, 3, False],       #【2】使用numpy中的mat()方法,构建一个数据矩阵
                  [2, 165,  80,  2, False],
                  [3, 184.5,120, 2, False],
                  [4, 116,  60.8,1, False],
                  [5, 270,  150, 4, True]])

column1 = []                                      #【3】定义一个空的列表
for rowNum in dataSet:                            #【4】使用for循环,每次将dataSet中的一行数据读入到rowNum变量中
    column1.append(rowNum[0,1])                   #【5】每次将rowNum中的第0行第一列的数据追加到列表变量colnum1中
    print(rowNum[0,1])
print(np.sum(column1))                            #【6】求取【统计变量】的数据和
print(np.mean(column1))                           #【7】求取【统计变量】的数据的【平均值】
print(np.std(column1))                            #【8】求取【统计变量】的数据的【标准差】
print(np.var(column1))                            #【9】求取【统计变量】的【方差】

#coding=UTF-8
#=======================================================================================================================
#文件说明:
#       图形化数据处理---Matplotlib包的使用
#开发环境:
#       Win10+Tensorflow+OpenCv_python3.4+PyCharm5.0.3+Python3.5
#时间地点:
#       陕西师范大学.文津楼  2018.4.16
#作    者:
#       马卫飞
#=======================================================================================================================
#=======================================================================================================================
#模块说明:
#       Matplotlib
#知识补充:
#      【1】我们处理【数学运算】、【绘制图表】、或者在【图像上绘制点】、直线和曲线时,Matplotlib是个很好类库。
#      【2】Matplotlib可以绘制出高质量的【图表】
#模块说明:
#      【1】对于单纯的数字来说,仅从【读数据】的角度并不能直观的反应数字的【偏差】和【集中度】,因此,需要采用另外一种方法来更好的分析数
#          据,对于数据来说,没有什么能够比用图形来解释更为形象和直观了。
#      【2】差异的可视化:研究数值差异和异常的方法是绘制数据的【分布程度】,相对于合适的直线或曲线,其差异程度如何,以帮助确定数据的分布
#=======================================================================================================================
import numpy as np                                #【1】导入numpy类库工具包
import matplotlib as mt                           #【2】导入matplotlib类库工具包
import pylab                                      #【3】导入pylab类库工具包
import scipy.stats as stats                       #【4】导入scipython类库工具包
dataSet = np.mat([[1, 200,  105, 3, False],       #【1】使用numpy中的mat()方法,构建一个数据矩阵
                  [2, 165,  80,  2, False],
                  [3, 184.5,120, 2, False],
                  [4, 116,  60.8,1, False],
                  [5, 270,  150, 4, True]])

column1 = []                                      #【2】定义一个空的列表
for rowNum in dataSet:                            #【3】使用for循环,每次将dataSet中的一行数据读入到rowNum变量中
    column1.append(rowNum[0,1])                   #【4】每次将rowNum中的第0行第一列的数据追加到列表变量colnum1中

stats.probplot(column1,plot=pylab)
pylab.show()
#=======================================================================================================================
#模块说明:
#       【1】scipy是专门的【机器学习】的【数据处理包】
#       【2】probplot计算了column数据集合中数据在【正态分布】下的【偏离程度】
#=======================================================================================================================
#=======================================================================================================================
#模块说明:
#       【1】scipy是专门的【机器学习】的【数据处理包】
#       【2】probplot计算了column数据集合中数据在【正态分布】下的【偏离程度】
#=======================================================================================================================
#coding=UTF-8
#=======================================================================================================================
#文件说明:
#       图形化数据处理---Matplotlib、scipy、pylab等包的使用
#开发环境:
#       Win10+Tensorflow+OpenCv_python3.4+PyCharm5.0.3+Python3.5
#时间地点:
#       陕西师范大学.文津楼  2018.4.17
#作    者:
#       马卫飞
#=======================================================================================================================
#=======================================================================================================================
#文件说明:
#       坐标图的展示
#详细说明:
#       【1】通过上一个实例对数据可视化的处理可以看出,可视化能够让【数据】更加直观的【展现出来】,同时,可以让【数据的误差】表现的更为
#           直观。
#       【2】一个【坐标图】能够对【数据】进行展示,最基本的要求是可以通过不同的行或者不同的列表现出数据的某些具体价值,不同的标签使用不
#           同的颜色和样式可以展示不同的系统关系。
#       【3】pandas--python data analysis Library:pandas是一个强大的用于【数据分析】、【时间序列】、【统计】的数据结构
#       【4】通过选定【不同目标行中不同的属性】,可以对其进行较好的衡量,比较两个行之间的属性关系以及属性之间的相关性。不同的目标,即使
#           属性千差万别,也可以构建【关系图】。
#       【5】本利中采用的数据较少,随着数据的增加,属性之间一般会呈现一种正态分布。
#=======================================================================================================================
import pandas            as pd                    #【1】导入pandas这个类库工具包
import matplotlib.pyplot as plot                  #【2】导入matplotlib这个类库中的pyplot模块,记住import导入的是整个模块文件

dataSet = pd.DataFrame([[1, 200,  105, 3, False], #【1】使用numpy中的mat()方法,构建一个数据矩阵
                       [2,  165,  80,  2, False],
                       [3,  184.5,120, 2, False],
                       [4,  116,  60.8,1, False],
                       [5,  270,  150, 4, True]])

dataRow1 = dataSet.iloc[1,0:3]
dataRow2 = dataSet.iloc[2,0:3]

plot.scatter(dataRow1,dataRow2)
plot.xlabel("Attributel")
plot.ylabel("Attribute2")
plot.show()

查看评论

SVM中核函数的理解

这篇文章是阅读JULY大神支持向量机通俗导论(理解SVM的三层境界)的一点学习笔记。 在JULY大神原文中,对核函数解释的时候,点和点的坐标表示混用了”X”这个字母,从而为理解带来了不便。于是自己经过...
  • qq_33485434
  • qq_33485434
  • 2018-04-16 20:48:28
  • 14

OpenCV笔记(4)实现神经网络(ANN)

      参考博客:点击打开链接。1.神经网络      神经网络最重要的功能是分类,前面用opencv实现的SVM也是分类器。      分类器的输入是数值向量,输出是数值。目标是让正确分类的比例...
  • qq_41051855
  • qq_41051855
  • 2018-04-16 16:18:49
  • 42

OpenCV3.0或OpenCV3.1的SVM操作

OpenCV2.0 SVM代码及其分析OpenCV 在很久以前就集成了SVM的功能,现在OpenCV升级到了3.0和3.1了,很多人都不习惯了怎么调用OpenCV中的SVM功能了。在之前OpenCV的...
  • wfh2015
  • wfh2015
  • 2016-04-15 18:33:28
  • 10912

opencv 学习之 SVM / ANN 图片分类(OPENCV3.2)

图片分类,VS2017 + OPENCV3.2 图片分两类,正负样本。最后一组测试。 速度较慢。可能图片太大。540*360....
  • u010477528
  • u010477528
  • 2017-09-06 10:34:04
  • 1863

13个用Python解决自然语言处理问题的深度学习框架

访问flyai.club,一键创建你的人工智能项目。来源 | 景略集智在本文中,我们会分享 Python 编程语言中可用于自然语言处理(NLP)的最流行的神经网络框架和库,也会举一些使用这些工具的现有...
  • iFlyAI
  • iFlyAI
  • 2018-04-16 10:45:05
  • 30

深度学习中的可视化

深度学习中的可视化操作
  • wuqingshan2010
  • wuqingshan2010
  • 2017-05-03 15:15:17
  • 817

opencv3 SVM

#include #include #include using namespace cv; using namespace cv::ml; void main() { Mat img = Mat:...
  • lcc_633
  • lcc_633
  • 2016-09-27 22:04:36
  • 750

【OpenCV3.3】SVM与字符分类示例

SVM,全称Support Vector Machine,即支持向量机,是机器学习中常用的分类器(同样支持向量回归),属监督式学习的一种。         在二值分类中,SVM通过寻找一个 决策最优分...
  • rrrfff
  • rrrfff
  • 2017-08-22 14:02:54
  • 9540

深度学习小白——卷积神经网络可视化(一)

一、可视化最大激活神经元的一些pathces 例如在这个AlexNet的pool5层任选一个神经元,然后喂给它大量的图片,看哪种图片最能激活该神经元 比如上面两行代表使神经元激活值最大的一些图...
  • MargretWG
  • MargretWG
  • 2017-04-07 18:00:58
  • 2752

深度学习(二十七)可视化理解卷积神经网络-ECCV 2014

可视化理解卷积神经网络 原文地址:http://blog.csdn.net/hjimce/article/details/50544370 作者:hjimce 一、相关理论 本篇博文主要...
  • GarfieldEr007
  • GarfieldEr007
  • 2016-01-28 08:05:49
  • 3991
    个人资料
    持之以恒
    等级:
    访问量: 50万+
    积分: 7035
    排名: 4074
    最新评论