社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

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

机器学习初学者 • 2 年前 • 435 次点击  

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

方法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 = [[00], [11]]
Y = [10]

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





    
往期精彩回顾




Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/153009
 
435 次点击