Python 抑制来自Scikit学习预测的控制台消息

Python 抑制来自Scikit学习预测的控制台消息,python,scikit-learn,Python,Scikit Learn,我用Scikit learn建立了预测模型。我已经用Flask、joblib部署了这个模型。每当我预测新的传入请求和加载的模型时,它就会在控制台上打印关于内核占用的总时间的消息 现在,我想禁用此打印。如何在模型预测新传入数据时抑制给定消息 [Parallel(n_jobs=24)]: Done 117 out of 174 | elapsed: 0.0s remaining: 0.0s [Parallel(n_jobs=24)]: Done 121 out of 179 | elap

我用Scikit learn建立了预测模型。我已经用Flask、joblib部署了这个模型。每当我预测新的传入请求和加载的模型时,它就会在控制台上打印关于内核占用的总时间的消息

现在,我想禁用此打印。如何在模型预测新传入数据时抑制给定消息

[Parallel(n_jobs=24)]: Done 117 out of 174 | elapsed:    0.0s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 121 out of 179 | elapsed:    0.0s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 122 out of 181 | elapsed:    0.0s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 123 out of 183 | elapsed:    0.0s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 125 out of 185 | elapsed:    0.0s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 127 out of 188 | elapsed:    0.0s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 128 out of 190 | elapsed:    0.0s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 129 out of 192 | elapsed:    0.0s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 132 out of 196 | elapsed:    0.0s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 133 out of 198 | elapsed:    0.0s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 135 out of 201 | elapsed:    0.0s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 137 out of 204 | elapsed:    0.0s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 138 out of 205 | elapsed:    0.0s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 140 out of 208 | elapsed:    0.0s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 143 out of 213 | elapsed:    0.0s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 148 out of 220 | elapsed:    0.0s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 149 out of 222 | elapsed:    0.0s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 153 out of 228 | elapsed:    0.1s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 155 out of 231 | elapsed:    0.1s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 159 out of 237 | elapsed:    0.1s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 165 out of 246 | elapsed:    0.1s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 168 out of 250 | elapsed:    0.1s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 169 out of 252 | elapsed:    0.1s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 171 out of 255 | elapsed:    0.1s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 173 out of 258 | elapsed:    0.1s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 177 out of 264 | elapsed:    0.1s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 181 out of 270 | elapsed:    0.1s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 183 out of 273 | elapsed:    0.1s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 185 out of 276 | elapsed:    0.1s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 187 out of 279 | elapsed:    0.1s remaining:    0.0s
[Parallel(n_jobs=24)]: Done 335 out of 500 | elapsed:    0.3s remaining:    0.1s
[Parallel(n_jobs=24)]: Done 500 out of 500 | elapsed:    0.3s finished

verbose
参数更改为
False

详细:int,可选:详细级别:如果非零,则为进度 信息被打印出来。高于50时,输出被发送到标准输出。这个 消息的频率随着详细程度的增加而增加。如果是 超过10次时,报告所有迭代

例如使用支持向量机模型

SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.0,
  kernel='rbf', max_iter=-1, probability=False, random_state=None,
  shrinking=True, tol=0.001, verbose=False)

我在使用sklearn.linear_model.LinearRegression时也有类似的抱怨。在这个方法中,我可以在.fit()方法或构造函数中找到详细参数。因此,python代码:

import numpy as np
from sklearn.linear_model import LinearRegression as LR

lr = LR()
y = np.random.rand(100) + 0.01 * np.arange(100)     # noisy line to fit    
x = np.arange(100)
x = np.reshape(y,[100,1])
lr.fit(x,y)
我得到了恼人的输出:

LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)
因为fit()方法返回指向自身的指针,而此文本表示该对象。抑制这种情况的一种简单方法是将上述代码修改为:

a = lr.fit(x,y)

从而将指针指定给某个变量,而不是您的屏幕。

如果由于模型的构造函数中存在
verbose=True
而产生不需要的输出,则可以稍后将其更改为成员变量:

from sklearn.some_category import SomeModel as M

m = M(verbose=True)
m.fit(x, y)  # has output
m.verbose = False
m.predict(x) # no output

你能指出你正在使用的模型吗?通常有一个
verbose
参数,你可以修改它。我正在使用model=GaussianNB(),Naive bayes model.Mir,我想为predict方法禁用它。我有GBs格式的数据,并且有多个模型,所以我无法重建它们。然而,如果我在建模时这样做,它会禁用它吗?还有其他选项吗?是的,我认为另外两个答案不能真正回答这个问题:它们只是关闭所有输出,而问题明确地问如何在实例化后甚至在拟合后关闭。编辑:为了更清楚,我对我的答案做了一点修改……你知道所有模型都有一个详细属性吗?对不起,我恐怕不知道。很难知道这样的事实,不是吗?特别是,因为sklearn开发人员现在可以添加一个新的模型,而这个模型可能没有。你也可以问同样的问题,关于在其他答案中使用的
verbose
参数,以使消息完全静音。。。你为什么要问这个问题?我建议不要使用
a
(或任何其他变量,在这种情况下),而是使用
,因为这是常见的。因此,该行的读数为
\uuz=lr.fit(x,y)