我试图拟合和评分逻辑回归模型但出现错误,任何人都可以帮我解决这个错误

Posted

技术标签:

【中文标题】我试图拟合和评分逻辑回归模型但出现错误,任何人都可以帮我解决这个错误【英文标题】:I was trying to fit and score logistic Regression model but getting error ,Can anyone help me this error 【发布时间】:2021-11-01 12:53:53 【问题描述】:

我正在尝试试验逻辑回归机器学习模型,但我不知道为什么会出错。

                  models = "Logistic Regression":LogisticRegression(),
             def fit_and_score(models,x_train,x_test,y_train,y_test):
             np.random.seed(42)
             model_scores = 
             #loop through model
             for name, model in models.items():
                model.fit(x_train,y_train)
               
                model_scores[name] = model.score(x_test,y_test)
            return model_scores
        
     
               model_scores = fit_and_score(models=models,
                                    x_train=x_train,
                                    x_test=x_test,
                                    y_train=y_train,
                                    y_test=y_test)
               model_scores

AttributeError                            Traceback (most recent call last)
<ipython-input-33-9c05affc041a> in <module>
----> 1 model_score = fit_and_score(models=models,
      2                             x_train=x_train,
      3                             x_test=x_test,
      4                             y_train=y_train,
      5                             y_test=y_test)

<ipython-input-32-b7a75c9edc31> in fit_and_score(models, x_train, x_test, y_train, y_test)
     21     for name , model in models.items():
     22         # fit the model to the data
---> 23         model.fit(x_train,y_train)
     24         # Evaluate the model and append it's score to model scores
     25         model_scores[name] = model.score(x_test,y_test)

~\Desktop\heart_disease_project\env\lib\site-packages\sklearn\linear_model\_logistic.py

适合(self, X, y, sample_weight) 1405 其他: 第1406章 -> 1407 fold_coefs_ = 并行(n_jobs=self.n_jobs,详细=self.verbose, 第1408章 1409 path_func(X, y, pos_class=class, Cs=[C_],

~\Desktop\heart_disease_project\env\lib\site-packages\joblib\parallel.py

调用(自我,可迭代) 1039 # 个剩余作业。 第1040章 -> 1041 如果 self.dispatch_one_batch(iterator): 1042 self._iterating = self._original_iterator 不是无 第1043章

~\Desktop\heart_disease_project\env\lib\site-packages\joblib\parallel.py

在 dispatch_one_batch(self, iterator) 中 857 返回错误 858 其他: --> 859 self._dispatch(任务) 860 返回真 861

~\Desktop\heart_disease_project\env\lib\site-packages\joblib\parallel.py

in _dispatch(self, batch) 775 与 self._lock: 第776章 --> 777 作业 = self._backend.apply_async(batch, callback=cb) 第778章 779 # 在我们到达之前调用,导致 self._jobs

~\Desktop\heart_disease_project\env\lib\site-packages\joblib\_parallel_backends.py

在 apply_async(self, func, callback) 206 def apply_async(自我,功能,回调=无): 207 """安排一个函数运行""" --> 208 结果 = 立即结果(函数) 209 如果回调: 210回调(结果)

~\Desktop\heart_disease_project\env\lib\site-packages\joblib\_parallel_backends.py

in init(自我,批处理) 570 # 不要延迟应用程序,避免保持输入 第571章 --> 572 self.results = batch() 573 第574章

~\Desktop\heart_disease_project\env\lib\site-packages\joblib\parallel.py

通话中(自己) 260 # 将默认进程数更改为-1 261 与并行后端(self._backend,n_jobs=self._n_jobs): --> 262 返回 [func(*args, **kwargs) 263 用于 self.items 中的 func、args、kwargs] 264

~\Desktop\heart_disease_project\env\lib\site-packages\joblib\parallel.py

在 (.0) 260 # 将默认进程数更改为-1 261 与并行后端(self._backend,n_jobs=self._n_jobs): --> 262 返回 [func(*args, **kwargs) 263 用于 self.items 中的 func、args、kwargs]

~\Desktop\heart_disease_project\env\lib\site-packages\sklearn\linear_model\_logistic.py

在 _logistic_regression_path(X, y, pos_class, Cs, fit_intercept, max_iter, tol, 详细, 求解器, coef, class_weight, dual, 惩罚, 拦截缩放,多类,随机状态,检查输入, max_squared_sum, sample_weight, l1_ratio) 760个选项=“iprint”:iprint,“gtol”:tol,“maxiter”:max_iter 第761章) --> 762 n_iter_i = _check_optimize_result( 763 求解器,opt_res,max_iter, 第764章

~\Desktop\heart_disease_project\env\lib\site-packages\sklearn\utils\optimize.py

在_check_optimize_result(求解器,结果,max_iter,extra_warning_msg) 241 "https://scikit-learn.org/stable/modules/" 第242章 --> 243 ).format(solver, result.status, result.message.decode("latin1")) 244 如果 extra_warning_msg 不是无: 245 warning_msg += "\n" + extra_warning_msg

AttributeError: 'str' object has no attribute 'decode'

【问题讨论】:

请提供所有错误信息而不是一行。 对不起,我对这一切完全陌生,但在这里我显示了完整的错误 对不起,我按照你的代码试试。这是正常的。我不能重复你的问题。 【参考方案1】:

我尝试了不同的参数,它解决了这个问题。

models = "Logistic Regression" : LogisticRegression(solver='liblinear'),
          "KNN" : KNeighborsClassifier(),
          "Random Forest" : RandomForestClassifier()

【讨论】:

以上是关于我试图拟合和评分逻辑回归模型但出现错误,任何人都可以帮我解决这个错误的主要内容,如果未能解决你的问题,请参考以下文章

Python Sklearn 逻辑回归模型拟合不正确

将逻辑回归模型拟合到 MNIST 数据需要很长时间

机器学习中的过拟合与正则化详解

7逻辑回归实践

7逻辑回归实践

R语言在逻辑回归中求R square R方