TypeError: SparseDataFrame() takes no arguments in Principal Component Analysis using Light_FAMD

TypeError: SparseDataFrame() takes no arguments in Principal Component Analysis using Light_FAMD

当尝试根据 https://pypi.org/project/light-famd/#factor-analysis-of-mixed-data-famd 上的说明执行 FAMD 时,我一遍又一遍地收到相同的错误,即:TypeError: SparseDataFrame() takes no arguments.

如何解决这个问题?它不仅发生在我自己的数据集上,而且每当我在像这样创建的基本随机生成的数据集上尝试它时也会发生:

X_n = pd.DataFrame(data=np.random.randint(0,100,size=(10,2)),columns=list('AB'))
X_c = pd.DataFrame(np.random.choice(list('abcde'),size=(10,4),replace=True),columns =list('CDEF'))
X = pd.concat([X_n,X_c],axis=1)

代码如下:

import pandas as pd
import numpy as np
import light_famd
from light_famd import FAMD
famd = FAMD(n_components=2)
famd.fit(X)
print(famd.explained_variance_)
print(famd.column_correlation(X))

它给出了 famd.fit(X) 处的错误。

它不仅对 Light_FAMD 而且对 sklearn 和 prince(我也试过)也是如此。

pandas 中的稀疏数据框已过时。检查他们的 git

SparseDataFrame changed by DataFrame in line 25 one_hot.py default_fill_value was removed one_hot.py index was removed one_hot.py SparseData False one_hot.py to_dense remove in line 105 mfa.py

您可以尝试安装来自git的最新版本:

python -m pip install git+https://github.com/Cauchemare/Light_FAMD.git

应该运行可以:

import pandas as pd
import numpy as np
import light_famd
from light_famd import FAMD

X_n = pd.DataFrame(data=np.random.randint(0,100,size=(10,2)),columns=list('AB'))
X_c = pd.DataFrame(np.random.choice(list('abcde'),size=(10,4),replace=True),columns =list('CDEF'))
X = pd.concat([X_n,X_c],axis=1)

famd = FAMD(n_components=2)
famd.fit(X)
print(famd.explained_variance_)
[17.77604109  9.92849978]

这最后一部分仍然会引发一些警告:

print(famd.column_correlation(X))