我有一个变量xcin,它包含数组形式的数据。我试图使用GraphLassoCV中存在的fit()来拟合此数据。
xcin中存在的数据:
[ 0.722 0.32202 0.70102 0.7414 0.18204 0.01132 0.171 0.723
0.722 0.52605 0.70102 0.7414 0.29253 0.95 0.729 0.7414
0.74999 0.7412 0.454 0.7414 0.15122 0.7414 0.65992 0.723
0.70102 0.45209 0.521 0.7412 0.92412 0.01403 0.45203 0.723
0.9303 0.454 0.74999 0.5232 0.6309 0.1712 0.7414 0.221
0.70102 0.851 0.241 0.01122 0.749 0.749 0.24232 0.454
0.80904 0.454 0.40106 0.74999 0.74999 0.17123 0.74999 0.7412
0.271 0.7414 0.55204 0.7414 0.5259 0.7414 0.749 0.7414
0.722 0.28133 0.9219 0.749 0.729 0.749 0.3311 0.45201
0.9303 0.45201 0.722 0.6304 0.722 0.40106 0.45205 0.18109
0.722 0.749 0.749 0.5259 0.40107 0.40106 0.36911 0.7414
0.7412 0.74999 0.154 0.851 0.722 0.154 0.722 0.74999
0.29253 0.729 0.7412 0.6309 ]
我尝试使用以下代码:
xcin =np.array([df['xcin']])/100000.0
# Learn a graphical structure from the correlations
edge_model = covariance.GraphLassoCV()
X = xcin.copy().T
X /= X.std(axis=0)
edge_model.fit(X)
但我得到一个错误在edge_model.fit()行:
ValueError: Found array with 1 feature(s) (shape=(100, 1)) while a minimum of 2 is required by GraphLassoCV.
有人能解释一下如何解决这个问题吗?
我正在尝试遵循这里演示的方法(http://scikit-learn.org/stable/auto_examples/applications/plot_stock_market.html#sphx-glr-auto-examples-applications-plot-stock-market-py)来生成类似类型的可视化。
您的数据是100x1,这意味着您有100个数字。这要么是100个样本的1dim数据要么是1个样本的100个dim数据。无论哪种方法,对于这样的数据都没有协方差矩阵的概念,你至少需要两个样本和两个维度。一维情况下,你唯一能计算的就是方差。特别是在源代码
中注释了这种行为。# Covariance does not make sense for a single feature
X = check_array(X, ensure_min_features=2, estimator=self)
使用sklearn.preprocessing.多项式特征(2).fit_transform(X)生成更多特征