【问题标题】:Hot to avoid Python Dask Logistic regression Multiple constant columns detected error热以避免 Python Dask Logistic 回归 Multiple constant columns detected 错误
【发布时间】:2019-06-13 14:46:22
【问题描述】:

我正在使用 python3 和 Dask 来拟合逻辑回归模型。 我有两个 numpy 数组 x, y 我使用这段代码将它们转换为 dask 数组

data = da.from_array(data, chunks=(1000, data.shape[1]))
labels = da.from_array(labels)

然后

from dask_ml.linear_model import LogisticRegression
l = LogisticRegression()
l.fit(data, labels)

为了拟合逻辑回归但不断收到此错误

raise ValueError('检测到多个常量列!') ValueError: 检测到多个常量列!

发现 here 这与 dask df 相关,但我正在对数组进行训练。想法?

【问题讨论】:

    标签: python dataframe machine-learning logistic-regression dask


    【解决方案1】:

    您可能可以对您的data 进行一些预处理。由于具有恒定值的特征列在许多 ML 任务中进行预测/估计时并没有提供太多帮助,而这些都是 std == 0 的地方,我们可以通过执行以下操作一开始就摆脱它们:

    data = data[:, ~np.all(data==data[0,:], axis=0)]
    

    【讨论】:

    • 这些特征是来自深度学习模型的迁移学习特征,其中一些可能具有零方差,并且不应该阻止我们创建逻辑回归模型,它在 SKlearn 中有效并且有意义。
    • 是的,我想知道为什么 dask 有那行代码来检查是否有超过 1 个特性的 std == 0。我猜它试图减少空间?
    • 减少空间很好,但不应该破坏运行,似乎是一个错误?
    • 我同意!有人在 repo 中提出过问题吗?
    • 我还没有遇到这个问题。关于这个问题的任何更新?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-29
    • 1970-01-01
    • 2020-02-04
    • 2015-01-06
    • 2019-12-22
    • 1970-01-01
    相关资源
    最近更新 更多