我正在拟合一个时间序列。从这个意义上说,我正在尝试使用该函数进行交叉验证TimeSeriesSplit。我相信应用此函数的最简单方法是通过该cross_val_score函数,通过 cv 参数。
问题很简单,我传递简历参数的方式正确吗?我应该做split(scaled_train)还是应该使用split(X_train)或split(input_data)?或者,我应该以另一种方式交叉验证?
这是我正在编写的代码:
def fit_model1(data: pd.DataFrame):
df = data
scores_fit_model1 = []
for sizes in test_sizes:
# Generate Test Design
input_data = df.drop('next_count',axis=1)
output_data = df[['next_count']]
X_train, X_test, y_train, y_test = train_test_split(input_data, output_data, test_size=sizes, random_state=0, shuffle=False)
#scaling
scaler = MinMaxScaler()
scaled_train = scaler.fit_transform(X_train)
scaled_test = scaler.transform(X_test)
#Build Model
lr = LinearRegression()
lr.fit(scaled_train, y_train.values.ravel())
predictions = lr.predict(scaled_test)
#Cross Validation Definition
time_split = TimeSeriesSplit(n_splits=10)
#performance metrics
r2 = cross_val_score(lr, scaled_train, …Run Code Online (Sandbox Code Playgroud)