我有以下代码
import pandas as pd
import numpy as np
from sklearn.decomposition import TruncatedSVD
df = df = pd.DataFrame(np.random.randn(1000, 25), index=dates, columns=list('ABCDEFGHIJKLMOPQRSTUVWXYZ'))
def reduce(dim):
svd = sklearn.decomposition.TruncatedSVD(n_components=dim, n_iter=7, random_state=42)
return svd.fit(df)
fitted = reduce(5)
如何从 fitted
中获取列名?
In continuation of Mikhail post.
假设您已经从 vectorizer.get_feature_names()
获得了 feature_names
,然后您调用了 svd.fit(X)
现在您还可以使用以下代码提取排序后的最佳特征名称:
best_fearures = [feature_names[i] for i in svd.components_[0].argsort()[::-1]]
上面的代码,尝试返回 svd.components_[0]
的降序排序的参数,并从 feature_names
(所有功能)中找到相对索引,并且构造 best_features
数组。然后您可以看到例如 10 个最佳功能:
In[21]: best_features[:10]
Out[21]:
['manag',
'develop',
'busi',
'solut',
'initi',
'enterprise',
'project',
'program',
'process',
'plan']
我是一名优秀的程序员,十分优秀!