<p>您的代码可以很好地使用以下for循环语法:</p>
<pre><code>import numpy as np
for gbrCount in np.arange(0, 1.0, 0.1):
for xgbCount in np.arange(0, 1.0, 0.1):
for regCount in np.arange(0, 1.0, 0.1):
y_p = (xgbCount*xgb.predict(testset)+ gbrCount*gbr.predict(testset)+regCount*regressor.predict(testset))
testset['SalePrice']=np.expm1(y_p)
y_train_p = xgb.predict(dataset)
y_train_p = np.expm1(y_train_p)
rmse.append(np.sqrt(mean_squared_error(y, y_train_p)))
rmse.append(xgbCount)
rmse.append(gbrCount)
rmse.append(regCount)
</code></pre>
<p>对于sum always=1 in loop,请查看以下内容:</p>
<pre><code>import numpy as np
for gbrCount in np.arange(0, 1.0, 0.1):
for xgbCount in np.arange(0, 1.0, 0.1):
for regCount in np.arange(0, 1.0, 0.1):
#check if sum is 1
if int(gbrCount+xgbCount+regCount) == 1:
y_p = (xgbCount*xgb.predict(testset)+ gbrCount*gbr.predict(testset)+regCount*regressor.predict(testset))
testset['SalePrice']=np.expm1(y_p)
y_train_p = xgb.predict(dataset)
y_train_p = np.expm1(y_train_p)
rmse.append(np.sqrt(mean_squared_error(y, y_train_p)))
rmse.append(xgbCount)
rmse.append(gbrCount)
rmse.append(regCount)
</code></pre>
<p>对于同一行中的每个结果,而不是每个值:</p>
<pre><code>import numpy as np
for gbrCount in np.arange(0, 1.0, 0.1):
for xgbCount in np.arange(0, 1.0, 0.1):
for regCount in np.arange(0, 1.0, 0.1):
#check if sum is 1
if int(gbrCount+xgbCount+regCount) == 1:
y_p = (xgbCount*xgb.predict(testset)+ gbrCount*gbr.predict(testset)+regCount*regressor.predict(testset))
testset['SalePrice']=np.expm1(y_p)
y_train_p = xgb.predict(dataset)
y_train_p = np.expm1(y_train_p)
rmse.append([np.sqrt(mean_squared_error(y, y_train_p)), xgbCount, gbrCount, regCount ])
</code></pre>