《Python大规模机器学习》—3.2.4 使用SGD实现大规模SVM
596
2022-05-28
2.2.3使用pandas I/O工具
我们可以使用pandas的read_csv函数替代csv模块。该函数专门用于上传CSV文件,pandas有大量支持多种文件格式的I/O函数,这是其中之一。相关文档资料请查看http://pandas.pydata.org/pandas-docs/stable/io.html。
使用pandas的I/O函数的优点如下:
如果更改源代码类型,能保持代码一致性,也就是说,只需要重新定义流迭代器。
支持多种格式,如CSV、普通TXT、HDF、JSON和对特定数据库的SQL查询等。
数据以DataFrame数据结构的形式流入所需大小的数据块,以便以位置方式或通过调用其标签来访问这些特征,这要用到.loc、.iloc、.ix等典型的pandas数据切割方法。
下面的示例仍然使用与之前相同的方法,但使用pandas的read_csv函数建立流数据:
这里需要注意的是,迭代器是通过指定块大小来实例化的,也就是说,迭代器在每次迭代时必须返回行数。chunksize参数假设值的范围是从1到任何值,但很明显,小批量处理(检索到的块)的大小与可用内存紧密相连,以便在后续预处理阶段中存储和操作它。
将较大数据块调入内存具有的优势仅仅体现在磁盘访问上。根据物理存储特性,较小数据块需要对磁盘进行多次访问,这会花费更长时间来传递数据。然而,从机器学习角度来看,较小或较大的块对Scikit中的非核心学习函数几乎没有影响,因为它们每次只学习一个实例,从而使得它们在计算成本上呈现真正的线性化。
TensorFlow python 机器学习
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。