我已经多次使用sklearn的linear_model.Ridge()了。然而,这次我在拟合模型时遇到了这个错误:
TypeError: ufunc 'subtract' output (typecode 'O') could not be coerced to provided output parameter (typecode 'd') according to the casting rule ''same_kind''
我认为这个错误与sample_weights数据类型有关。下面是我的代码。
X = df[['X']]
Y = df[['Y']]
weights = df[['Wgt']]
weights = weights.values
weights = weights.ravel()
lr_rg = linear_model.Ridge(alpha=2700)
lr_rg.fit(X, Y, sample_weight=weights)权重设置有问题吗?我以前也为这个模型做过类似的设置,从来没有遇到过任何问题。在没有sample_weights的情况下拟合模型效果很好。
我看了这个question,但不知道如何将它应用到我的问题中。任何帮助都将不胜感激。
发布于 2019-02-19 23:56:45
我发现答案是,在这个过程中的某个地方,weights numpy数组在需要为int64的时候获得了sklearn模型的数据类型object。因此,我在构建模型之前添加了以下代码行:
weights = weights.astype(np.64)
https://stackoverflow.com/questions/54754595
复制相似问题