从文本文件中提取特征并将它们训练为分类器

时间:2018-05-22 05:02:50

标签: python machine-learning scikit-learn

我需要将文本文件中的一些数据组织成分类器的功能。我有3个功能需要训练,我在理解功能变量的正确格式方面遇到了一些麻烦。

from sklearn import tree
import os
import re

os.chdir(r"C:\ig_automation")
metrics_to_train = open('metrics_to_train.txt', 'r')
labels_to_train = open('labels_to_train.txt', 'r')
validation_metrics = open('validation_metrics.txt', 'r')
validation_labels = open('validation_labels.txt', 'r')

clf = tree.DecisionTreeClassifier()
features = metrics_to_train.read().replace("\n","").replace("   "," 
").split(" ")
print(features)

输出:

['1434.0', '4000000.0', '33.0', '82.0', '39.0', '219.0', '634.0', '5506.0', '58.0', '106.0', '783.0', '332.0', '222.0', '413.0', '197.0', '112.0'......

数据如下:专长1 - 帖子数量(pos 0 = 1434),专长2 - 追随者(pos 1 = 4000000),专长3 - 跟随数量(pos 2 = 33)并且重复直到列表的最后一个值。

我必须使用此功能训练分类器并获得一个标签。

如果我导入数据的方式有任何问题,以下是文本文件中的一些行:

1434.0   4000000.0   33.0   
82.0   39.0   219.0   
634.0   5506.0   58.0   
106.0   783.0   332.0   
222.0   413.0   197.0   

我是ML的新人,所以我真的需要一些建议。谢谢!

1 个答案:

答案 0 :(得分:0)

您需要移调特征矩阵。

这样做的原因是所有scikit-learn函数都期望矩阵X作为输入,其中行是subjects(samples)而列是`特征(变量)?< / p>

来自documentation:

enter image description here

因此,使用numpy作为快速方式转置数据:

import numpy as np

features = np.array(features)
X = features.T

clf.fit(X,....)