- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个由数字和分类数据组成的数据集,我想根据患者的医疗特征预测其不良结果。我为我的数据集定义了一个预测管道,如下所示:
X = dataset.drop(columns=['target'])
y = dataset['target']
# define categorical and numeric transformers
numeric_transformer = Pipeline(steps=[
('knnImputer', KNNImputer(n_neighbors=2, weights="uniform")),
('scaler', StandardScaler())])
categorical_transformer = Pipeline(steps=[
('imputer', SimpleImputer(strategy='constant', fill_value='missing')),
('onehot', OneHotEncoder(handle_unknown='ignore'))])
# dispatch object columns to the categorical_transformer and remaining columns to numerical_transformer
preprocessor = ColumnTransformer(transformers=[
('num', numeric_transformer, selector(dtype_exclude="object")),
('cat', categorical_transformer, selector(dtype_include="object"))
])
# Append classifier to preprocessing pipeline.
# Now we have a full prediction pipeline.
clf = Pipeline(steps=[('preprocessor', preprocessor),
('classifier', LogisticRegression())])
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
clf.fit(X_train, y_train)
print("model score: %.3f" % clf.score(X_test, y_test))
但是,在运行此代码时,我收到以下警告消息:
ConvergenceWarning: lbfgs failed to converge (status=1):
STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.
Increase the number of iterations (max_iter) or scale the data as shown in:
https://scikit-learn.org/stable/modules/preprocessing.html
Please also refer to the documentation for alternative solver options:
https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression
extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG)
model score: 0.988
有人可以向我解释这个警告是什么意思吗?我是机器学习的新手,所以对我可以做些什么来改进预测模型有点迷茫。正如您从 numeric_transformer 中看到的,我通过标准化对数据进行了缩放。我也很困惑模型得分是多么高,以及这是好事还是坏事。
最佳答案
警告的意思是它主要说的是:建议尝试使求解器(算法)收敛。lbfgs
代表:“有限内存 Broyden-Fletcher-Goldfarb-Shanno 算法”。它是 Scikit-Learn 库提供的求解器算法之一。
有限内存一词仅表示它存储 只有少数 隐式表示梯度近似的向量。
它有更好的收敛在相对较小的数据集上。
但什么是算法收敛?
用简单的话来说。如果求解的误差在非常小的范围内(即几乎没有变化),那么这意味着算法达到了解决方案(不必是最佳解决方案,因为它可能会停留在所谓的“局部最优” ”)。
另一方面,如果错误是 变化明显 (即使误差相对较小[例如在您的情况下分数很好],但每次迭代的误差之间的差异大于某些容差)那么我们说算法没有收敛。
现在,您需要知道 Scikit-Learn API 有时会为用户提供选项来指定算法在以迭代方式搜索解决方案时应采用的最大迭代次数:
LogisticRegression(... solver='lbfgs', max_iter=100 ...)
如您所见,LogisticRegression 中的默认求解器是 'lbfgs',最大迭代次数默认为 100。
关于python - 迭代次数达到限制的收敛警告 : lbfgs failed to converge (status=1): STOP: TOTAL NO.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62658215/
代码: import numpy from matplotlib.mlab import PCA file_name = "store1_pca_matrix.txt" ori_data = nump
我正在尝试使用 https://github.com/Michaelvll/DeepCCA 经过 20-40 次迭代后,出现以下错误: RuntimeError: symeig_cpu: the al
我正在实现 Converge 灯箱。开发服务器IP已经加入白名单。我可以通过消费获取 session token "https://api.demo.convergepay.com/hosted-pa
我有一个服务器程序,它从一组网络对等点中随机选择 10 个来完成一项任务。生成节点随机索引的代码如下: indices = let index = getStdRandom $ randomR (0,
我正在尝试用 Octave 计算梯度下降。每次迭代,我的 theta 都会呈指数级增长。我不确定问题是什么,因为我直接复制另一个函数。 这是我的矩阵: X = 1 98 1 94 1
我正在尝试使用来自 SkLearn 的 Kmeans 算法从一组数据中构建集群。我想知道如何确定算法是否真正收敛到一个数据的解决方案。 我们输入 tol 参数来定义收敛容差,但还有一个 max_ite
我正在尝试获取列表 v 的所有旋转。因此,在 rotations 的定义中,我使用翻转版本的 rotateLeft 作为第一个分支函数(为了首先接受列表),然后是返回list [0, 1, 2, ..
我一直在尝试通过构建简短的程序来学习 Haskell。我对函数式编程世界有点陌生,但已经做了大量的阅读。 我在 Haskell 中有一个相对较短的递归函数,用于使用牛顿法找到一个函数的根,达到浮点数允
我目前在训练 svm.OneClassSVM 时遇到问题. 我将问题简化为最小示例: from sklearn import svm import pandas as pd X_train = pd.
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
我尝试了很多测试信用卡号,但总是返回结果是“无效卡”。 请求地址: https://demo.myvirtualmerchant.com/VirtualMerchantDemo/processxml.
以下nls代码抛出以下错误 Convergence failure: singular convergence (7)为 fm2 (对于 Data2 )。但是类似数据集的相同代码工作正常( fm1 用
我想使用 R 中的“neuralnet”包来训练神经网络。训练数据集是一个包含 8 个预测变量 (x1,x2,x3,...,x8) 和 1 个响应变量 (y) 的数据框。数据如下: data
我在使用 coxph() 时遇到一些问题。我有两个分类变量:性别和可能的原因,我想将其用作预测变量。性别只是典型的男性/女性,但可能的原因有 5 个选项。我不知道警告消息有什么问题。为什么置信区间从
我试图在 matplotlib 中的矩阵上进行 PCA,但不断遇到 LinAlgError: SVD 未收敛。我检查了我的数据是否有错误值。我能够在类似的数据集上实现 PCA,没有任何问题,但在这种情
我编写了一个使用 Armadillo svd_econ 函数的函数。我正在尝试处理 svd 无法收敛的情况,因为出于某种原因在这种情况下它不会中止函数。 有问题的错误是: error: svd_eco
为 Adrian 运行线性二进制模式的代码。该程序运行但给出以下警告: C:\Python27\lib\site-packages\sklearn\svm\base.py:922: Convergen
我试图用 Scipy 解决一个大的特征值问题,其中矩阵 A是密集的,但我可以计算它对向量的作用而无需组装 A明确地。因此,为了避免矩阵 A 变大时出现内存问题,我想使用稀疏求解器 scipy.spar
背景:我正在开发一个使用statsmodels的程序,该程序适合27个arima模型(p,d,q = 0,1,2)到100多个变量,并为AR/选择具有最低aic和具有统计意义的t统计量的模型Dicke
我已经为 DCGAN 构建了自己的实现在 TensorFlow培训 MNIST . 完整代码(可运行)可在 github 上找到:https://github.com/Daniel451/tfdcga
我是一名优秀的程序员,十分优秀!