【机器学习】特征/模型存储的5种方法

今天将介绍的比赛中存储特征的几种方法,供大家学习和选择。

方法1:csv/txt

存储为csv、text或者json是最为简单的存储格式,阅读和解析起来非常方便。

如果使用Pandas则可以在存储的过程中设置压缩方法,对磁盘比较友好。

  • 场景:通用

  • 数据:表格、文本

  • 文件大小:压缩后较少

  • 读取速度:较慢

compression_opts = dict(method='zip',
                        archive_name='out.csv')  
df.to_csv('out.zip', index=False,
          compression=compression_opts)

方法2:hdf

HDF(Hierarchical Data File)是能满足各种领域研究需求而研制的一种能高效存储和分发科学数据的新型数据格式。

HDF格式支持分层存储,可以将多个变量同时存在一个HDF文件中,同时在读取速度上也比较快。

  • 场景:通用

  • 数据:表格、文本

  • 文件大小:较大

  • 读取速度:较快

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]},
                  index=['a', 'b', 'c'])
df.to_hdf('data.h5', key='df', mode='w')

方法3:npy

如果将特征和数据处理为Numpy格式,则可以考虑存储为Numpy中的npynpz格式。

  • 场景:文件存储

  • 数据:矩阵

  • 文件大小:适中

  • 读取速度:较快


1. npy文件:二进制格式

np.load()np.save()是读写磁盘数组数据的两个重要函数。使用时数组会以未压缩的原始二进制格式保存在扩展名为.npy的文件中。

import numpy as np

arr=np.arange(5)
np.save('test',arr)

print(np.load('test.npy'))
  1. npz文件:压缩文件

使用np.savez()函数可以将多个数组保存到同一个文件中。读取.npz文件时使用np.load()函数,返回的是一个类似于字典的对象,因此可以通过数组名作为关键字对多个数组进行访问。

import numpy as np

a = np.arange(5)
b = np.arange(6)
c = np.arange(7)
np.savez('test', a, b, c_array=c)  # c_array是数组c的命名

data = np.load('test.npz')
print('arr_0 : ', data['arr_0'])
print('arr_1 : ', data['arr_1'])
print('c_array : ', data['c_array'])

方法4:memmap

NumPy实现了一个类似于ndarraymemmap对象,它允许将大文件分成小段进行读写,而不是一次性将整个数组读入内存。

如果需要存储的对象大于内存,则可以选择memmap进行存储。

  • 场景:大文件存储

  • 数据:矩阵

  • 文件大小:较大、特别大

  • 读取速度:适中

newfp = np.memmap(filename, dtype='float32', mode='r', shape=(3,4))
fpc[0,:] = 0

方法5:joblib

类似于pkl存储,joblib.dump可以将任意的Python对象持久化到一个文件中,并使用joblib.load进行读取。

  • 场景:任意

  • 数据:任意

  • 文件大小:适中

  • 读取速度:适中

from joblib import load, dump

X = [[0, 0], [1, 1]]
Y = [1, 0]

dump((X, Y), "data.pkl")
X, Y = load("data.pkl")
 
 

c551961aa0e4c2ea062af2ce6789b766.jpeg

 
 
 
 
 
 
 
 
往期精彩回顾




适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑机器学习交流qq群955171419,加入微信群请扫码
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值