<bdo id='GFTYk'></bdo><ul id='GFTYk'></ul>

  1. <legend id='GFTYk'><style id='GFTYk'><dir id='GFTYk'><q id='GFTYk'></q></dir></style></legend>
  2. <small id='GFTYk'></small><noframes id='GFTYk'>

      <i id='GFTYk'><tr id='GFTYk'><dt id='GFTYk'><q id='GFTYk'><span id='GFTYk'><b id='GFTYk'><form id='GFTYk'><ins id='GFTYk'></ins><ul id='GFTYk'></ul><sub id='GFTYk'></sub></form><legend id='GFTYk'></legend><bdo id='GFTYk'><pre id='GFTYk'><center id='GFTYk'></center></pre></bdo></b><th id='GFTYk'></th></span></q></dt></tr></i><div id='GFTYk'><tfoot id='GFTYk'></tfoot><dl id='GFTYk'><fieldset id='GFTYk'></fieldset></dl></div>
      <tfoot id='GFTYk'></tfoot>

    1. CatBoostRegressor在尝试预测时显示错误(TypeError:无法将&#39;b&#39;

      时间:2024-08-22

        <legend id='6EXy7'><style id='6EXy7'><dir id='6EXy7'><q id='6EXy7'></q></dir></style></legend>
            1. <small id='6EXy7'></small><noframes id='6EXy7'>

                <tbody id='6EXy7'></tbody>
            2. <i id='6EXy7'><tr id='6EXy7'><dt id='6EXy7'><q id='6EXy7'><span id='6EXy7'><b id='6EXy7'><form id='6EXy7'><ins id='6EXy7'></ins><ul id='6EXy7'></ul><sub id='6EXy7'></sub></form><legend id='6EXy7'></legend><bdo id='6EXy7'><pre id='6EXy7'><center id='6EXy7'></center></pre></bdo></b><th id='6EXy7'></th></span></q></dt></tr></i><div id='6EXy7'><tfoot id='6EXy7'></tfoot><dl id='6EXy7'><fieldset id='6EXy7'></fieldset></dl></div>
              • <bdo id='6EXy7'></bdo><ul id='6EXy7'></ul>
              • <tfoot id='6EXy7'></tfoot>
                本文介绍了CatBoostRegressor在尝试预测时显示错误(TypeError:无法将&#39;b&#39;转换为浮点)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                那么,事情是这样的.我有一个问题和这个人问的非常接近here。我在做一个相当结实的模型。我实际上已经运行过此代码几次,但是现在我面临这个问题。

                这是我的数据集(由于公司政策,我不能分享任何真实数据):

                category        brand        city        day_of_week        price
                mobile_phone    LG           Busan       3                  100   
                mobile_phone    Apple        Seul        4                  120
                mobile_phone    LG           Changwon    5                  110
                tv              LG           Busan       2                  120
                tv              Samsung      Suwon       3                  150
                tv              Samsung      Ulsan       3                  200
                .
                .
                .
                

                是关于修理电子产品的价格问题。问题是,我在运行一个回归,其中价格是目标,睡觉是功能。

                所以这正是我运行的内容:

                rf = CatBoostRegressor(
                cat_features = ["category",
                "brand",
                "city",
                "day_of_week"],
                eval_metric="RMSE",
                learning_rate=0.13,
                iterations=500,
                )
                
                rf.fit(X_train, y_train, plot=True, eval_set=(X_test, y_test))
                pred_rf = rf.predict(X_test)
                

                这是Python显示的消息:

                TypeError: Cannot convert 'b'mobile_phone'' to float
                

                为什么?CatBoost应该在没有其他东西的情况下就转换了。这很疯狂,因为它在10分钟前对另一个非常相似的数据集起作用。

                另外,模型实际运行:

                bestTest = 0.3275576877
                bestIteration = 144
                
                Shrink model to first 145 iterations.
                

                那么,你知道我做错了什么吗?

                提前谢谢您。再次抱歉,我无法共享数据集。

                推荐答案

                我同意查看克里斯的评论。我刚才出现了这个错误,这是因为我没有正确指定我的cat_features参数。乍一看,您似乎猜对了,但我要做的是使用以下命令提取所有对象功能:

                # Get all object variables from X_train
                cat_vars = [var for var in X_train.columns if X_train[var].dtype == "O"]
                
                # Initialize model with cat_vars
                rf = CatBoostRegressor(
                                   cat_features = cat_vars,
                                   eval_metric="RMSE",
                                   learning_rate=0.13,
                                   iterations=500,
                                   )
                # Fit & Predict
                rf.fit(X_train, y_train, plot=True, eval_set=(X_test, y_test))
                pred_rf = rf.predict(X_test)
                
                这样,如果我的数据帧被奇怪地读入(pd.read_csv)并转换了一些dtype,这通常是floatint,它仍然可以处理。 警告:在prod中,您可能希望静态了解cat_var,并在某个配置文件中定义它们,而不是运行此命令。这仅供catBoost上的dev使用。

                这篇关于CatBoostRegressor在尝试预测时显示错误(TypeError:无法将&#39;b&#39;转换为浮点)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                上一篇:Ploly:如何在条形图中添加趋势线? 下一篇:ValueError:endog必须在单位间隔内

                相关文章

                  <bdo id='mZMgh'></bdo><ul id='mZMgh'></ul>
              • <i id='mZMgh'><tr id='mZMgh'><dt id='mZMgh'><q id='mZMgh'><span id='mZMgh'><b id='mZMgh'><form id='mZMgh'><ins id='mZMgh'></ins><ul id='mZMgh'></ul><sub id='mZMgh'></sub></form><legend id='mZMgh'></legend><bdo id='mZMgh'><pre id='mZMgh'><center id='mZMgh'></center></pre></bdo></b><th id='mZMgh'></th></span></q></dt></tr></i><div id='mZMgh'><tfoot id='mZMgh'></tfoot><dl id='mZMgh'><fieldset id='mZMgh'></fieldset></dl></div>
                  <legend id='mZMgh'><style id='mZMgh'><dir id='mZMgh'><q id='mZMgh'></q></dir></style></legend>

                  1. <tfoot id='mZMgh'></tfoot>

                    <small id='mZMgh'></small><noframes id='mZMgh'>