大家好，我们今天要来学习在数据放入目标算法（模型）前
如何预处理我们的数据。
我们将通过脑电波扫描图集来推测一个人是否在冥想
数据是人和机器观察世界的基础。
所有事情都可以用数据来表达，科学，艺术、演讲
所有的一切都可以在计算机上用0和1的数据来表达。
当我们进入VR世界时，我们的四周都是数据，我们所见到的一切都是由纯数据构成的。
当我们在现实世界中看到的一些实体物及物体的时候，他都会被我们的大脑用数据在的形式存储起来。
你身边所有的东西都是数据，要不然你是不是你在一个模拟器中？
如果你不在科技巨头那里工作的话，你如何得到相应的数据呢？？
这里就到我们第一步了，准备数据，这里对需要哪种数据作出选择
你需要的数据完全取决于你想解决什么样的问题
如果我想做一个有启发性的聊天机器人，那我们肯定不会用提姆库克的聊天作为数据集
数据就是一切（即是方法也是结果）
这里有一个好消息，这里有一个公开的数据集，几乎涵盖了所有一切话题。
这里有一些我个人推荐的数据网站 kaggle 我喜欢他们展示数据的方法，还有如何详细解释这些数据
同时也提供了相应数据的提问区，方便提问
这里在我下面提供的github网址，
有很多公开的数据集的链接地址
谷歌的高级搜索功能也非常有用
通常只要结合几个关键词，我们就可以搜索到我们需要的数据
我们可以通过制定相关的，文件后缀（例如CSV）以及相关的域名（.edu .gov）来简化搜索
通常有一些网站会提供相关的api来，进行数据的访问没有也没关系
我们可以用一些很好用的库例如beautiful soup 将HTML源文件转换成数据表
DIY DATA 哈哈
你帮我们确认了我们用哪种类型的数据。第二步就是处理数据
我们将写一个程序(函数)，把数据从脑部ct扫描的图像中提取出来，然后我们
可以把数据输入到TF中建立的单层神经网络中，神经网络将在已有的数据集
（两个分类）中生成一个分类线，当给到一个新的扫描图时候能区分这个人是否在冥想
让我们来看一下数据集，
这是通过EEG采集到的志愿者人脑活动阵列的列表
这里有两个分类：一个分类就是正在冥想用1来表示，另外一个就是没有在冥想用0来表示
数据中有三项 注意力集中程度 冷静的程度 还有志愿者年龄
我们希望合理的整理我们的数据
有时数据是文字，有时数据是相关联的数据，有些数据跟我们现在用的一样，是一个csv文件（数据表格）
现在基本上所有的文件格式都可以被转换成另一种文格式
去把数据转换成你最熟悉的格式 当我们有了正确的文件格式后
我们需要清理数据 有时我们的一些数据项是不完整的
我们可以（写函数）逐行查找，删除那些空项或者是空值的项目
我们同样需要考虑需要用哪些特征数据
决定用哪些数据项是数据科学中最重要的一环
如果我们没有正确的选择数据项，那我们的模型将无法作出正确的预测。我们一定要确保所用的数据像跟需要预测的东西有关联
我们只想用那些有关系的数据项，他们的性别跟他们是否冥想几乎没什么关系
所以我们可以完全忽略这个特征，让我们先建立两个array
第一个array用来存放分类，第二个array用来存放特征数据
我们可以通过这个for循环来迭代CSV文件中每一行，我们把每行当做一个案例来解决
用“，”分隔每行数据写入到array中，每行的第一个数据就是它的分类标志
把它变成整数形，得到第一个分类标签array
我们可以把特征数据也通过同样的方法映射到特征数据array中
我们把每个数据提取出来后取浮点数确保精度，
我们的数据array（数组）现在是一个多项数组（arrays）了
我们把数据变成了想要的，格式后就到了我们最后一步：转换数据
第一个方法就是分解数据，有时我们的数据过于复杂
例如时间，如果我们要预测今年的10月份哪一天就要下雨的话
我们其实不需要月份信息和星期的信息
如果我们把日期分解成只有月和对应月中的哪一天，我们可以让模型预测的更加准确
当我们对我们的特征数据和分类标志都已经非常满意了以后
我们只需要把这些特征转换成向量矩阵，一个我们最需要重视的特征
向量矩阵是一切特征的数字化抽象，所有的特征都可以描述成向量
词语，图像，视频都可以转换成向量
我们可以把这些向量直接输入到我们的模型中
我们可以用numpy.matrix函数将我们的特征数组（arrays）转换成2D的特征向量矩阵，并设置为浮点形
这是一个特征向量组成的矩阵，每一个向量都是一组特征实例
将我们的标签array转换成numpy.array
因为numpy.array便于转换成1hot编码矩阵
然后我们得到我们的特征矩阵和标签矩阵
啥是1hot 编码？来吧DJ解释一下 我TMD无聊 所以弄个array
放入 猫狗鸭子鱼这些分类 如果我用数字也行
1 2 3 4 都显示出来 这里4>1吗？并不是
因为我不想这样，不想给他们一个评级
我把每个特征用不同的位置“1”表示
这样就不会出现123这样的数字大小问题了
当我没有处理好的数据后，我们想把数据放入到模型中
在tensorflow中placeholder扮演了一个占位符的作用
我们这里写两个placeholder一个是用来放置特征矩阵，另外一个是用来放置标签矩阵。
历经千辛万苦终于终于写到run方法时（训练方法）
我们可以用feed_dict参数将我们的数据放入到
X：放入特征矩阵 Y：放入标签矩阵
当运行我们的模型的时候，我们可以发现一条区线分数据中的人是否是在冥想
当我们放入一个新数据实例时候
哐，一下子就区分出他是否在冥想了
让我们分解来说，准备数据分三步，选对数据（选取特征），处理数据（净化数据），转换数据（向量化）
你们可以在网上找到很多的，公开的数据集，我把它们整理了一下，放在下面的评论区里了
或者你也可以用beautiful soup 这些脚本工具来创建你自己的工具集
一旦我们有了好的数据，我们就要把它向量化
数字抽象化的数据便于机器学习理解这些数据
上一期的机器人，挑战的，胜者是 KARL kisen 它用了deepQlearning
他的机器人以游戏图像数据为输入，
用CNN网络以试错的方式更新游戏策略，而且这是大兄弟第一个git项目
上周大佬呀，第二名是RohanVerma 上周我没完成的那个他用了2分半就弄完了
本周的编程挑战
写个宠物小精灵分类器，我会提供相应数据
在评论中写好你的github连接，我会在下一个视频中宣布胜者！
喜欢请订阅，现在我要让网络去中心化了。拜了个拜
