我需要从一个文本文件中组织一些数据作为分类器的特征。我有三个特征需要训练,但在理解特征变量的正确格式上遇到了些问题。
from sklearn import treeimport osimport reos.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 – 帖子数量(位置0 = 1434),特征2 – 粉丝数(位置1 = 4000000),特征3 – 关注数(位置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
我在机器学习方面是新手,所以我真的需要一些建议。谢谢!
回答:
你需要转置特征矩阵。
这样做的原因是,所有的scikit-learn
函数都期望一个矩阵X
作为输入,其中行是subjects(samples)
,列是features(variables)
。
根据文档:
因此,使用numpy
来快速转置数据:
import numpy as npfeatures = np.array(features)X = features.Tclf.fit(X,....)