Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scikit learn sklearn:从多项选择特征创建稀疏特征向量_Scikit Learn - Fatal编程技术网

Scikit learn sklearn:从多项选择特征创建稀疏特征向量

Scikit learn sklearn:从多项选择特征创建稀疏特征向量,scikit-learn,Scikit Learn,我有如下数据: 20003.0, 20003.1, 20004.0, 20004.1, 34 1, 2, 3, 4, 5 其中以*结尾的列是多选项,它们采用的值是分类的 理想情况下,我将能够将[{'20003':['1','2','20004':['3','4'],'34':5}]传递给DictVectorizer,但这还不受支持 如何加载此数据以创建稀疏特征向量?如果可以对相同列组的值进行汇总: In [63]: df Out[63]: 20003.0 20003.1 20004.

我有如下数据:

20003.0, 20003.1, 20004.0, 20004.1, 34
1, 2, 3, 4, 5
其中以*结尾的列是多选项,它们采用的值是分类的

理想情况下,我将能够将
[{'20003':['1','2','20004':['3','4'],'34':5}]
传递给
DictVectorizer
,但这还不受支持


如何加载此数据以创建稀疏特征向量?

如果可以对相同列组的值进行汇总:

In [63]: df
Out[63]:
   20003.0  20003.1  20004.0  20004.1  34
0        1        2        3        4   5

In [64]: d = df.groupby(df.columns.str.split('.').str[0], axis=1).sum().to_dict('r')

In [65]: d
Out[65]: [{'20003': 3, '20004': 7, '34': 5}]

In [66]: from sklearn.feature_extraction import DictVectorizer

In [67]: v = DictVectorizer()

In [68]: X = v.fit_transform(d)

In [69]: X.toarray()
Out[69]: array([[ 3.,  7.,  5.]])

In [70]: v.inverse_transform(X)
Out[70]: [{'20003': 3.0, '20004': 7.0, '34': 5.0}]
说明:

In [71]: df.groupby(df.columns.str.split('.').str[0], axis=1).sum()
Out[71]:
   20003  20004  34
0      3      7   5

In [72]: df.groupby(df.columns.str.split('.').str[0], axis=1).sum().to_dict('r')
Out[72]: [{'20003': 3, '20004': 7, '34': 5}]

你的数据是什么?它是文本、数据框、数组还是其他?它是从CSV读取的数据框。您能将类似列中的值相加吗?例如:
[{'20003':3,'20004':7,'34':5}]
-这可以很容易地传递给dictvectorier。不幸的是,我无法对这些值求和。可能不清楚的是,它们是绝对的。