Vig*_*ati 5 python scikit-learn
我已经使用Scikit学习建立了预测模型。我已经用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
Run Code Online (Sandbox Code Playgroud)
我在使用 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)
Run Code Online (Sandbox Code Playgroud)
我得到了烦人的输出:
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)
Run Code Online (Sandbox Code Playgroud)
因为 fit() 方法返回一个指向自身的指针,而这个文本代表那个对象。抑制这种情况的一种简单方法是将上面的代码修改为:
a = lr.fit(x,y)
Run Code Online (Sandbox Code Playgroud)
从而将指针分配给某个变量而不是您的屏幕。
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
Run Code Online (Sandbox Code Playgroud)
小智 2
将verbose参数更改为False.
verbose:int,可选:详细级别:如果非零,则打印进度消息。超过 50 时,输出将发送到 stdout。消息的频率随着详细程度的增加而增加。如果超过 10,则报告所有迭代。
例如使用SVM模型
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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1881 次 |
| 最近记录: |