如何在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 但它不适用于浮点数。所以我尝试了范围:


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)))

但它在控制台上根本没有错误。


不负相思意
浏览 126回答 1
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):            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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python