如何将矩阵拆分为训练测试数据,同时确保训练矩阵的行和列中至少有一个值?

2024-03-29 10:30:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我想随机地将稀疏矩阵分割成相同维度的训练和测试数据,同时确保训练集中没有满是零的列或行。在

为了使算法正常工作,我需要在训练集的每一行和每列中至少有一个值。在

我尝试使用这个库函数: 从sklearn.model_选择导入列车测试分割

例如给定矩阵:

[[0, 1, 3, 1],
[0, 0, 0, 1],
[8, 0, 0, 1]]

可以将矩阵拆分以生成此培训矩阵:

^{pr2}$

第二行只包含0。如何避免这种情况?在


Tags: 算法model情况矩阵sklearn测试数据列车库函数
1条回答
网友
1楼 · 发布于 2024-03-29 10:30:31
from sklearn.model_selection import KFold 
import numpy as np 

# Create some dummy data
X = np.array([[1, 2], [3, 4], [1, 2], [3, 4], [0, 0])

# Remove rows having all of their columns equal to 0
X = X[~np.all(X == 0, axis=1)]

# Assuming 2-fold cross-validation
kf = KFold(n_splits=2)
kf.get_n_splits(X)

现在kf有两个训练/测试折叠:

^{pr2}$

相关问题 更多 >