如何获取文本文件并将其更改为可用于机器学习分类器的数据



对于这个练习练习,我只应该使用numpy,所以我不能只使用scikit learn。

我已经加载了数据集,并设法将其拆分为正数组和负数组。然而,我不确定现在该做什么,甚至不确定我正在做什么来处理分类器的数据。

datasettrain = np.loadtxt("Adaboost-trainer.txt")
negtrain, postrain = np.delete(datasettrain[datasettrain[:,2] < 0],2,1), np.delete(datasettrain[datasettrain[:,2] > 0],2,1)
clf = Adaboost(n_clf=5)
clf.fit(postrain, negtrain)

我知道我应该输入功能和标签,但数据肯定必须是不同的格式吗?而不仅仅是一个纯文本文件?至少我总是收到那些只标有特征和标签的数据,我可以通过拆分这些数据来输入。有人想知道如何将一个普通的文本文件处理成功能和标签吗?

编辑


1.116574  0.157686  +1
-0.359096  0.653998  -1
1.845620  0.873235  +1
-0.271484 -0.960392  -1
0.304631  2.797998  +1

啊,如果我正确地解释了您的样本数据,前两列是您的特征列,最后一列是目标值。如果这是正确的,那么要获得训练和测试集,您需要做以下操作:

import numpy as np

data = np.loadtxt("Adaboost-trainer.txt")
# Determine your training/test split. I opted for 80/20
test_size = 0.2
split_index = int(data.shape[0] * test_size)
# Get the full train and test splits
indices = np.random.permutation(data.shape[0])
test_idx = indices[split_index:]
train_idx = indices[:split_index]
test = data[test_idx,:]
train = data[train_idx,:]
# Split the X and y for use in models
y_train = train[:,-1]
X_train = np.delete(train, 2, axis=1)
y_test = test[:,-1]
X_test = np.delete(test, 2, axis=1)

从那里,您可以对数据进行80/20的训练/测试分割,以便与模型一起使用。

最新更新