目前机器学习竞赛中使用的数据集大小基本都有几十到几百MB,有的甚至达到GB级别,对于想使用jupyter进行训练的来说每次上传都会浪费很多时间,如果是使用算力平台的jupyter上传的话还会浪费算力,所以最好的方法就是在使用算力资源之前先将数据集上传到算力平台提供的数据存储空间中,例如OpenBayes就提供了数据仓库功能来存储数据,下面详细介绍一下使用流程:
OpenBayes注册使用地址:
openbayes.com/console/sig...
新用户注册完成手机号及邮箱双重验证后,即可获得4小时RTX 4090、5小时CPU 免费使用时长以及免费存储空间 50 GB。
进入数据集页面
在使用上面的链接注册登录之后,进入【数据仓库】目录下的【数据集】页面,可以看到我已经上传了多个数据集。
编辑
创建新的数据集
点击右上角的【创建新数据集】,就进入了填写基本信息的页面,填写完毕后点击左下角【创建数据集】,再点击右上角的【创建空版本】,到这里就创建这个数据集的v1版本,如果数据有更新但又不想创建另一个数据集直接再创建另一个v2版本上传即可,不需要再将容器绑定新的数据集。
上传本地数据集
点击【上传至当前目录】,就可以从本地上传数据集文件,OpenBayes提供了50GB的免费存储空间,对于相对小规模数据的训练来说足够了。在数据集上传的过程中不要关闭该页面,会中断上传流程。
绑定数据集至容器
结合t.csdnimg.cn/IbwSk我在上一篇文章已经介绍的新容器创建过程,在基本信息页面进行数据绑定,可以选择只读绑定和读写绑定,然后选择算力资源执行容器即可。
在Jupyter中加载数据
在Jupyter页面可以看到我们绑定的数据,在代码中读取数据的路径为'../input0/##',如果绑定了多个数据集,则将input后的数字按序列增加即可,至此,我们实现了在jupyter内使用数据集。
使用pandas读取数据
数据读取
ini
import pandas as pd
import numpy as np
train = pd.read_csv('../input0/train.csv')
test = pd.read_csv('../input0/test.csv')
数据基本信息
ini
def data_stats(data):
stats = []
for col in data.columns:
stats.append((col, data[col].nunique(),
round(data[col].value_counts(normalize = True, dropna = False).values[0] * 100, 3),
data[col].dtype))
stats_df = pd.DataFrame(stats, columns = ['特征','属性个数','最大属性占比','特征类型'])
return stats_df
data_stats(train)
data_stats(test)
特征 | 属性个数 | 最大属性占比 | 特征类型 | |
---|---|---|---|---|
0 | id | 5832 | 0.017 | object |
1 | dt | 496 | 0.203 | int64 |
2 | type | 19 | 20.722 | int64 |
3 | target | 181304 | 0.004 | float64 |
特征 | 属性个数 | 最大属性占比 | 特征类型 | |
---|---|---|---|---|
0 | id | 5832 | 0.017 | object |
1 | dt | 10 | 10.000 | int64 |
2 | type | 19 | 20.645 | int64 |
数据可视化
ini
import matplotlib.pyplot as plt
type_target_df = train.groupby('type')['target'].mean().reset_index()
plt.figure(figsize=(8, 4))
plt.bar(type_target_df['type'], type_target_df['target'], color=['#5ba2e6', '#f89732'])
plt.xlabel('Type')
plt.ylabel('Average Target Value')
plt.title('Bar Chart of Target by Type')
plt.show()
ini
specific_id_df = train[train['id'] == '00037f39cf']
plt.figure(figsize=(15, 5))
plt.plot(specific_id_df['dt'], specific_id_df['target'], marker='o', linestyle='-', color = '#5ba2e6')
plt.xlabel('DateTime')
plt.ylabel('Target Value')
plt.title("Line Chart of Target for ID '00037f39cf'")
plt.show()
Openbayes提供了丰富的算力资源,最高可以提供96核CPU,192GB显存,320GB内存,800GB工作空间,高质量算力首选Openbayes!