【问题标题】:TypeError: SparseDataFrame() takes no arguments in Principal Component Analysis using Light_FAMDTypeError: SparseDataFrame() 在使用 Light_FAMD 的主成分分析中不接受任何参数
【发布时间】:2021-11-08 08:25:53
【问题描述】:

当尝试根据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(我也尝试过)。

【问题讨论】:

    标签: python pca


    【解决方案1】:

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

    SparseDataFrame 在第 25 行 one_hot.py 中由 DataFrame 更改 default_fill_value 已删除 one_hot.py 索引已删除 one_hot.py SparseData False one_hot.py to_dense 在第 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))
    

    【讨论】:

      猜你喜欢
      • 2020-07-29
      • 2020-02-23
      • 1970-01-01
      • 2020-07-17
      • 2018-11-16
      • 2013-04-19
      • 1970-01-01
      • 1970-01-01
      • 2013-10-24
      相关资源
      最近更新 更多