首页 > 解决方案 > 每个 csv 作为一个训练样例

问题描述

我有许多具有多行和多列的 csv 文件,这些文件大多是浮点数(有些是分类的,但单热编码)。每个 csv 文件是一个训练示例的表示。它在同一个文件中包含因变量和自变量。(例如,它不像机器学习问题,其中每一行包含所有信息并预测该行的 y1、y2、y3,它就像 x1 到 x8 组合的所有行将预测 y1 到 y3 组合的所有行。因此,每个csv 成为一个训练示例。

一个这样的csv的表示

** 上图是此类 csv 文件之一的表示

请注意,每个 csv 的长度/大小各不相同。

我想建立一个简单的 ann 或任何其他神经网络模型。我在处理输入数据时遇到问题。由于每个 csv 都是一个单独的训练示例,我应该以哪种格式存储数据以传递给神经网络。

提前谢谢, skw

标签: python-3.xcsvmachine-learning

解决方案


假设您有一些具有相同数据格式的 .csv 文件存储在文件夹数据中。

首先,您可以使用 glob 读取文件名并使用 pandas 读取 csv 并转换为 numpy 数组。

import glob
import pandas as pd

csv = [] # read as numpy array
for f in glob.glob('path/*.csv'):
    csv.append(pd.read_csv(f).to_numpy)

print(csv[0].shape)

# it should print (num_rows_csv, 11) # as, 11 columns

# now, first 8 columns are features, and last 3 columns are response

X = []
y = []
for arr in csv:
    X.append(arr[0:8])
    y.append(arr[8:])

X = np.array(X)
y = np.array(y)

现在,使用 CNN、LSTM 以及您想要的任何模型都可以轻松地进行训练。


推荐阅读