python LDA scikit 学习抛出 ValueError
python LDA scikit learn throws ValueError
我有一个带有解释变量的 pd.DataFrame:X 和另一个带有目标变量 y 的数据框。
type(X)
Out[1]: pandas.core.frame.DataFrame
X_num.shape
Out[2]: (1213, 3298)
和
type(y)
Out[3]: pandas.core.frame.DataFrame
y.shape
Out[4]: (1213, 8)
我想只使用 y 的一列来计算 LDA:
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA
lda = LDA(n_components=2)
for col in y:
X_t = lda.fit(X.copy(), y[col].copy())
y 有一个列名
y[col].name
Out[5]: u'myvarname'
但我总是得到错误
ValueError: Unknown label type: (array([ 0.001, 0.003 ...
我也试过了
X_t = lda.fit(X.copy(), y[col].values.copy())
并得到同样的错误。
根据help fit要求为Y
Y : array-like of response, shape = [n_samples, n_targets]
Target vectors, where n_samples in the number of samples
and n_targets is the number of response variables.
有人知道我做错了什么吗?
线性判别分析是一种分类技术。根据您的错误,您的 Y
值涉及某种浮点值数组:
array([ 0.001, 0.003 ...
并且 sklearn
不知道如何将其解释为类别标签。您确定您应该使用 LDA 而不是某种回归吗?
我有一个带有解释变量的 pd.DataFrame:X 和另一个带有目标变量 y 的数据框。
type(X)
Out[1]: pandas.core.frame.DataFrame
X_num.shape
Out[2]: (1213, 3298)
和
type(y)
Out[3]: pandas.core.frame.DataFrame
y.shape
Out[4]: (1213, 8)
我想只使用 y 的一列来计算 LDA:
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA
lda = LDA(n_components=2)
for col in y:
X_t = lda.fit(X.copy(), y[col].copy())
y 有一个列名
y[col].name
Out[5]: u'myvarname'
但我总是得到错误
ValueError: Unknown label type: (array([ 0.001, 0.003 ...
我也试过了
X_t = lda.fit(X.copy(), y[col].values.copy())
并得到同样的错误。
根据help fit要求为Y
Y : array-like of response, shape = [n_samples, n_targets]
Target vectors, where n_samples in the number of samples
and n_targets is the number of response variables.
有人知道我做错了什么吗?
线性判别分析是一种分类技术。根据您的错误,您的 Y
值涉及某种浮点值数组:
array([ 0.001, 0.003 ...
并且 sklearn
不知道如何将其解释为类别标签。您确定您应该使用 LDA 而不是某种回归吗?