Python K折叠交叉验证
我想在我的数据集中的随机森林回归器中实现交叉验证。我想知道我的代码是否正确?这是交叉验证的方式吗? 以下是我的示例数据:Python K折叠交叉验证,python,random-forest,cross-validation,Python,Random Forest,Cross Validation,我想在我的数据集中的随机森林回归器中实现交叉验证。我想知道我的代码是否正确?这是交叉验证的方式吗? 以下是我的示例数据: Wavelength Phase_velocity Shear_wave_velocity 1.50 202.69 240.73 1.68 192.72 240.73 1.79 205.54 240.73 ........
Wavelength Phase_velocity Shear_wave_velocity
1.50 202.69 240.73
1.68 192.72 240.73
1.79 205.54 240.73
........
这是我的密码:
from sklearn.ensemble import RandomForestRegressor
import numpy as np
from sklearn.datasets import make_regression
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.model_selection import KFold,train_test_split,cross_val_score
df = pd.read_csv("5.5-6.csv")
df.head()
X = df[['wavelength', 'phase velocity']]
y = df['shear wave velocity']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
print (len(X_train),len(X_test),len(y_train),len(y_test))
from sklearn.model_selection import KFold
kfold = KFold(n_splits=10, shuffle=True)
rf = RandomForestRegressor(n_estimators=30000)
rf.fit(X_train, y_train)
results = cross_val_score(rf, X_train, y_train, cv=kfold) #Cross validation on training set
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
print (rf.predict(X_test)) #array_output
print (y_test)
print (rf.score(X_test, y_test))
y_pred = rf.predict(X_test)
from sklearn.metrics import mean_absolute_error
print (mean_absolute_error(y_test,y_pred))
from sklearn.metrics import mean_squared_error
from math import sqrt
rmse = sqrt(mean_squared_error(y_test,y_pred))
print(rmse)
随机森林模型通常不需要交叉验证。袋外采样过程隐式地交叉验证正在构建的林。您应该检查射频型号的重要性指标。好的。非常感谢。那么MLP回归,SVM,逻辑回归呢?它需要交叉验证吗?是的……作为模型构建过程的一部分,这些可能需要交叉验证。那么,如果我将上面的SVM代码用于交叉验证,可以吗?我从未使用Python处理过SVM。我可以说是的,你应该使用支持向量机的交叉验证。一个随机森林模型通常不需要交叉验证。袋外采样过程隐式地交叉验证正在构建的林。您应该检查射频型号的重要性指标。好的。非常感谢。那么MLP回归,SVM,逻辑回归呢?它需要交叉验证吗?是的……作为模型构建过程的一部分,这些可能需要交叉验证。那么,如果我将上面的SVM代码用于交叉验证,可以吗?我从未使用Python处理过SVM。我可以说是的,你应该使用支持向量机的交叉验证。