我有2个(训练和测试)非常大的稀疏矩阵,我想用于预测。
对于我想做的实验,我只想取一部分数据。 我编写了一个脚本,该脚本使用火车LibSVM文件的前k行创建了一个文件。
有关测试的问题是: 1)鉴于这是一项监督学习,我需要参加相同的课程 2)如果我没有从训练中获取所有行,则有时训练的属性数量可能会比测试少。
关于如何使我的测试数据集与我的培训数据兼容的任何建议?
这是用于创建我的火车文件的功能的代码。
def k_train_data(k):
with open("../Data/LSHTC/LSHTC1/train_corrected.txt", 'r') as file1:
with open("../Data/LSHTC/LSHTC1/train_"+str(k)+".txt", 'a+') as file2:
s = ""
for i in range(k):
line = file1.readline()
s += line
if i % 100 == 0:
file2.write(s)
s = ""
file2.write(s)
这是读取文件的代码:
X_train, y_train = load_svmlight_file("../Data/LSHTC/LSHTC1/train_500.txt")
X_test, y_test = load_svmlight_file("../Data/LSHTC/LSHTC1/test_corrected.txt", n_features=shape(X_train)[1])
对于这个尺寸,我得到以下形状:
火车:(500,1199727)
测试:(34800,1199855)
(我知道训练样本太小,但这只是一个实验)