首页 > 解决方案 > 从文本文件中提取特征并将它们训练到分类器

问题描述

我需要将文本文件中的一些数据组织成分类器的特征。我有 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'......

数据如下:feat 1 - 帖子数量(pos 0 = 1434),feat 2 - 关注者(pos 1 = 4000000),feat 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 的新手,所以我真的需要一些建议。谢谢!

标签: pythonmachine-learningscikit-learn

解决方案


您需要转置特征矩阵。

这样做的原因是所有scikit-learn函数都期望一个矩阵X作为输入,其中行是subjects(samples),列是“特征(变量)?”。

文档中:

在此处输入图像描述

因此,使用以下快速方式转置数据:numpy

import numpy as np

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

clf.fit(X,....)

推荐阅读