用于两个数据集的Sci-kit learn机器学习脚本

这里没有太多智慧… 但我有一个脚本,它会使用for i in range循环来编译和测试算法两次,看看均方根误差是否有任何变化。

是否可以修改代码,使循环能够测试两个不同的数据集?例如,df首先运行一次编译rmse,然后df2运行编译rmse,然后我可以比较/打印两个数据集之间的rmse。两个数据集都将使用['Demand']作为响应变量。

#测试随机森林import numpy as npfrom sklearn import preprocessing, neighborsimport pandas as pdfrom sklearn.ensemble import RandomForestRegressorfrom sklearn.externals import joblibimport mathrmses = []for i in range(2):    X = np.array(df2.drop(['Demand'],1))    y = np.array(df2['Demand'])    offset = int(X.shape[0] * 0.7)    X_train, y_train = X[:offset], y[:offset]    X_test, y_test = X[offset:], y[offset:]    clf = RandomForestRegressor(n_estimators=60, min_samples_split=6)    clf.fit(X_train, y_train)    mse = mean_squared_error(y_test, clf.predict(X_test))    rmse = math.sqrt(mse)    print("rmse: %.4f" % rmse)    rmses.append(rmse)print(sum(rmses)/len(rmses))

回答:

你可以使用一个辅助数据框,并通过条件在每次迭代中分配你想要编译的数据框:

for i in range(2):    if i==1:        aux_df = df    else:        aux_df = df2    .    .    .

这样你就可以在第一次迭代中使用第一个df,在第二次迭代中使用df2

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注