小编use*_*548的帖子

在 cross_val_score 中使用 TimeSeriesSplit

我正在拟合一个时间序列。从这个意义上说,我正在尝试使用该函数进行交叉验证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)

python time-series scikit-learn

5
推荐指数
1
解决办法
601
查看次数

标签 统计

python ×1

scikit-learn ×1

time-series ×1