如何在python中创建一系列浮点值?

2024-04-19 10:42:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用x+y+z等于1的条件做几个循环,进入最后一个循环。你知道吗

我使用了以下方法:

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)

但即使总和大于1,它也会进入循环。(xgb、reg和gbr)的某些值类似于0.70000001。你知道吗

所以我试着使用linspace,但它对float不起作用。所以我尝试了这个范围:

for gbrCount in range(0, 1):
    gbrCount += 0.1
    for xgbCount in range(0, 1):
        xgbCount += 0.1
        for regCount in range(0, 1):
            regCount += 0.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 = (xgbCount*xgb.predict(dataset)+ gbrCount*gbr.predict(dataset)+regCount*regressor.predict(dataset))
                y_train_p = np.expm1(y_train_p)
#                print(np.sqrt(mean_squared_error(y, y_train_p)))
#                print(xgbCount)
#                print(gbrCount)
#                print(regCount)
                print(xgbCount,  gbrCount, regCount, np.sqrt(mean_squared_error(y, y_train_p)))

但是它在控制台上没有任何错误。你知道吗


Tags: infornptrainpredictdatasetprintrmse
1条回答
网友
1楼 · 发布于 2024-04-19 10:42:28

这个怎么样?(我不认为最后一轮是必要的,但为了安全起见,我把它放在那儿了。)

    import numpy as np
    for _gbrCount in np.arange(0, 1.0, 0.1):
        for _xgbCount in np.arange(0, 1.0, 0.1):
            gbrCount = np.round(_gbrCounr, decimals=1)
            xgbCount = np.round(_cgbCount, decimals=1)
            regCount = np.round(1 - gbrCount - xgbCount, decimals=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)

相关问题 更多 >