如何在Pycharm中查看内置底层代码,巧用参数
引入已有或内置的函数会让代码写得更加简洁、清晰。而内置函数众多,有许多长期不用已经淡忘甚至从未谋面的函数。不知道该函数有什么功能。所以,我们需要查看底层代码来了解函数的作用和内置的关键字。
Pycharm用鼠标定位到这个函数,然后按Ctrl+B调出底层代码。
举个栗子:
一个一元一次线性回归,随机生成X,y作为数据集,运用随机梯度下降法得出W0,W1。
import numpy as np
from sklearn.linear_model import SGDRegressor
X = 2 * np.random.rand(100, 1)
y = 4 + 2 * X + np.random.randn(100, 1)
sgd_reg = SGDRegressor(penalty='l2')
sgd_reg.fit(X, y.ravel())
print("预测值:", sgd_reg.predict(1.5))
print("W0=", sgd_reg.intercept_) // 打印算出的w0
print("W1=", sgd_reg.coef_) // 打印算出的w1
在sgd_reg = SGDRegressor(penalty=‘l2’)代码上,把鼠标定位在SGDRegressor处,按Ctrl+B,以下为内置代码。
class SGDRegressor(BaseSGDRegressor):
def __init__(self, loss="squared_loss", penalty="l2", alpha=0.0001,
l1_ratio=0.15, fit_intercept=True, max_iter=1000, tol=1e-3,
shuffle=True, verbose=0, epsilon=DEFAULT_EPSILON,
random_state=None, learning_rate="invscaling", eta0=0.01,
power_t=0.25, early_stopping=False, validation_fraction=0.1,
n_iter_no_change=5, warm_start=False, average=False):
super().__init__(
loss=loss, penalty=penalty, alpha=alpha, l1_ratio=l1_ratio,
fit_intercept=fit_intercept, max_iter=max_iter, tol=tol,
shuffle=shuffle, verbose=verbose, epsilon=epsilon,
random_state=random_state, learning_rate=learning_rate, eta0=eta0,
power_t=power_t, early_stopping=early_stopping,
validation_fraction=validation_fraction,
n_iter_no_change=n_iter_no_change, warm_start=warm_start,
average=average)
SGDRegressor中, n_iter_no_change=5,即默认值是5。显然迭代次数较少,不妨改成1000比较合理,未修改的参数仍为默认值。修改的代码如下:
sgd_reg = SGDRegressor(penalty='l2', n_iter_no_change=1000)
当我们记不清内置函数的参数,可以Ctrl+B查看内置函数。而且,内置代码中还有对参数的说明,所以说,不能完全记住内置函数也没有什么太大关系。