我想将交叉验证用于预测模型。我想保留20%的数据作为测试集,并使用其余的数据通过交叉验证使模型适合我的需求。
希望如下:
作为机器学习模型,我想使用Random Forest和LightGBM。
...
#!/usr/bin/bash
Para1=$1
Para2=$2
if [[ $Para1 =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ] && [ $Para2 =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ] ]
then
Echo "execute blah blah.."
else
if [[ $Para1 =~ ^[0-9a-zA-Z]{9}$ ] && [ $Para2 =~ ^[0-9a-zA-Z]{9}$ ] ]
then
echo "execute the script"
else `enter code here`
echo "please pass the right ids.
fi
fi
...
它给出了结果,但是我想预测X_test数据的y值。你能帮我吗?之后,我还将为LightGBM创建一个模型。
谢谢
答案 0 :(得分:2)
通常,出于以下两个原因之一使用交叉验证(CV):
GridSearchCV
模块cross_val_score
从您的设置中可以清楚地看到您处于上述第二种情况:无论出于何种原因,您似乎都得出结论,要使用的超参数是您在模型定义中显示的参数,并且在继续之前要适合它,您需要指出它的性能如何。您选择使用cross_val_score
进行操作,到目前为止,您显示的代码确实可以正常使用。
但是您还没有完成:cross_val_score
只是这样做,即返回分数,不返回拟合的模型。因此,为了实际拟合模型并获得测试集的预测(当然,假设您对cross_val_score
返回的实际分数感到满意),您需要这样做:
random_forest.fit(X_train, y_train)
pred = random_forest.predict(X_test)
LightGBM的过程也应类似。
答案 1 :(得分:1)
const obj = {
en: {
user: {
name: "John"
}
},
language: "en"
}
const name = obj[obj.language].user.name
console.log(name)
所以预测就是列表,那么您可以使用此预测来检查准确性