Sklearn 多类数据集加载
Sklearn Multiclass Dataset Loading
对于多类问题,我使用 Scikit-Learn。我发现很少有关于如何加载具有多个 类 的自定义数据集的示例。 sklearn.datasets.load_files
方法似乎不适合,因为文件需要多次存储。我现在有以下结构:
X => Python 包含功能列表的列表(在文本中)。
y => Python 列表和 类 的列表(在文本中)。
如何将其转换为 Scikit-Learn 可以在分类器中使用的结构?
import numpy as np
from sklearn.preprocessing import MultiLabelBinarizer
X = np.loadtxt('samples.csv', delimiter=",")
y_aux = np.loadtxt('targets.csv', delimiter=",")
y = MultiLabelBinarizer().fit_transform(y_aux)
代码解释:假设您将所有特征存储在一个名为 samples.csv
的文件中,将多类标签存储在另一个名为 targets.csv
的文件中(它们当然可以存储在同一个文件中,你只需要拆分列)。为了清楚起见,我的文件包含:
samples.csv
4.0,3.2,5.5
6.8,5.6,3.3
targets.csv
1,4 <-- 样本一属于 类 1 和 4
2,3 <-- 样本二属于 类 2,3
MultiLabelBinarizer
以 y
变量 准备好输入多类分类器 的方式对输出目标进行编码。代码的输出是:
y = array([[1, 0, 0, 1],
[0, 1, 1, 0]])
表示样本一属于 类 1 和 4,样本二属于 2 和 3。
对于多类问题,我使用 Scikit-Learn。我发现很少有关于如何加载具有多个 类 的自定义数据集的示例。 sklearn.datasets.load_files
方法似乎不适合,因为文件需要多次存储。我现在有以下结构:
X => Python 包含功能列表的列表(在文本中)。
y => Python 列表和 类 的列表(在文本中)。
如何将其转换为 Scikit-Learn 可以在分类器中使用的结构?
import numpy as np
from sklearn.preprocessing import MultiLabelBinarizer
X = np.loadtxt('samples.csv', delimiter=",")
y_aux = np.loadtxt('targets.csv', delimiter=",")
y = MultiLabelBinarizer().fit_transform(y_aux)
代码解释:假设您将所有特征存储在一个名为 samples.csv
的文件中,将多类标签存储在另一个名为 targets.csv
的文件中(它们当然可以存储在同一个文件中,你只需要拆分列)。为了清楚起见,我的文件包含:
samples.csv
4.0,3.2,5.5
6.8,5.6,3.3targets.csv
1,4 <-- 样本一属于 类 1 和 4
2,3 <-- 样本二属于 类 2,3
MultiLabelBinarizer
以 y
变量 准备好输入多类分类器 的方式对输出目标进行编码。代码的输出是:
y = array([[1, 0, 0, 1],
[0, 1, 1, 0]])
表示样本一属于 类 1 和 4,样本二属于 2 和 3。