使用MLJ时的报错

在提问之前请确定你已经努力阅读了文档,并且尝试自己在互联网上搜索。

请尽可能提供你的demo代码或者GitHub的gist地址。

using RDatasets
using DataFrames
using MLJ
using MLJLinearModels
boston = dataset("MASS", "Boston")
data = DataFrame(boston)
y = data.MedV
X = select(data, Not(:MedV))
train, test = partition(eachindex(y), 0.3, shuffle=true, rng=123)
lr = MLJLinearModels.LinearRegressor()
mach = machine(lr, X, y)
fit!(mach, rows=train)
y_pred = predict(mach, X[test, :])
println(y_pred)
# code

报错显示,Warning: The number and/or types of data arguments do not match what the specified model supports. Suppress this type check by specifying scitype_check_level=0.
请问如何解决?谢谢!

你贴下部分数据看看,有可能是 boston 中的有些数据不是纯数字,需要你先进行数据清洗和数据转换

您好,我把数据保存为csv格式后查看了一下,确实都是数字。

你这样,REPL 中看看

scitypes(data)

模型可能需要数字都是 Continuous,数据中有一部分是 Count

显示的是这样的结果,看起来确实有一部分count?请问怎么解决呢?
Table{Union{AbstractVector{Continuous}, AbstractVector{Count}}}

这样

types = autotype(data, (:discrete_to_continuous,))
data = coerce(data, types)

然后通过模型训练数据就行了

其实我几年前写过 MLJ 的教程的,还有一些数据分析的例子,你在论坛里找找我的贴子

非常感谢!!!!