【发布时间】:2018-03-07 06:30:05
【问题描述】:
我一直在阅读 kaggle 中的一些代码,并遇到了一个模糊的实现。直到今天我才知道我们可以在外部为模型声明一个变量。
from sklearn.linear_model import LogisticRegression
...
model = LogisticRegression()
....
model.loss = 0.01
model.penalty = 'l1'
model.l1_ratio = True
model.alpha = 'auto'
model.fit(x_train, y_train)
我知道 sklearn 中的逻辑回归除了惩罚之外没有任何这些参数,我在 sklearn 本身中发现了另一种线性算法 SGDClassifier,它实际上接受所有这些参数,但对于“损失”、“l1_ratio” , 'alpha' 数据类型不同。我知道每个参数的描述以及为什么在其他算法中使用它们,但我无法理解这个声明背后的原因。非常感谢对此实现的任何解释。谢谢。
【问题讨论】:
-
您能否链接任何使用此行为的文章,以便我们更好地了解其原因。从上面的代码中,它没有用(因为它不会在 sklearn 中的任何地方使用),除了易于更改算法。在这里,我们只需将
model = LogisticRegression()更改为 model = GradientBoostingClassifier() 而不必担心再次声明它们。只有模型的相关参数会被改变,其余的只会在那里,没有任何影响。
标签: python scikit-learn logistic-regression