traf ich ein Problem, wenn ich python3.6 mit Scikit-Learn 0,18unterschiedliche Punktzahl zwischen cross_val_score und train_test_split
verwendet wurde verwendet, ich die Random eine Regression zu tun, und die Regression war ziemlich gut, aber als ich versuche, das zu berechnen Kreuzvalidierung, traf ich ein Problem, das die Punkte aus cross_val_score und train_test_split waren wirklich unterschiedlich. Die Punktzahl von train_test_split ist 0,9, aber der Mittelwert von cross_val_score ist etwa 0,3.
Können Sie mir den Grund sagen? oder etwas falsch in meinem Code?
der Code
import numpy as np
import cv2
import itertools
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import RandomForestRegressor
from sklearn.cross_validation import cross_val_score,cross_val_predict,ShuffleSplit,KFold
from sklearn.model_selection import train_test_split
train= np.loadtxt('.txt')
traindata=train[0:,38:]
traintarget=train[0:,j]
rf=RandomForestRegressor(n_estimators=20)
rf.fit(traindata,traintarget)
X=traindata
Y=traintarget
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.3, random_state=0)
print (rf.score(X_test, Y_test))
score3 = cross_val_score(rf, X, Y, scoring= 'r2', cv=ShuffleSplit(n=len(X),test_size=0.3,train_size=0.6))
score4 = cross_val_score(rf, X, Y, scoring= 'neg_mean_absolute_error', cv=ShuffleSplit(n=len(X),test_size=0.3,train_size=0.6))
score5 = cross_val_score(rf, X, Y, scoring= 'neg_mean_squared_error', cv=ShuffleSplit(n=len(X),test_size=0.3,train_size=0.6))
print (score3)
print (score4)
print (score5)
Ich sah jemanden hatte das gleiche Problem. Aber ich habe die Zufallsstichprobe bereits in beiden Methoden hinzugefügt. –