这里没有很多知识...但是我有一个脚本,将使用for i in range
循环对算法进行两次编译和测试,以查看均方根误差是否有变化。
是否可以在循环将用于测试两个不同数据集的地方修改代码? IE,df
会先运行一次rmse编译,然后df2
会运行rmse编译,然后我可以比较/打印两者之间的rmse。两个数据集将具有相同的{{1 }}作为响应变量。
['Demand']
答案 0 :(得分:1)
您可以创建dfs列表并对其进行迭代:
rmses = []
df_lst = [df1, df2]
for df in df_lst:
X = np.array(df.drop(['Demand'],1))
y = np.array(df['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))
答案 1 :(得分:0)
您可以使用辅助df,并使用条件分配要在每次迭代中编译的数据框:
for i in range(2):
if i==1:
aux_df = df
else:
aux_df = df2
.
.
.
这样,您可以在第一次迭代中使用第一个df
,在第二次迭代中使用df2
。