逻辑回归的参数详解及属性

逻辑回归类中实现了二分类、一对多分类,多项式逻辑回归。

针对优化算法的解释如下:

“lbfgs”, “sag” 和 “newton-cg” solvers (求解器)只支持 L2 惩罚项,对某些高维数据收敛更快。这些求解器的参数 `multi_class`设为 “multinomial” 即可训练一个真正的多项式 logistic 回归 [5] ,其预测的概率比默认的 “one-vs-rest” 设定更为准确。

“sag” 求解器基于平均随机梯度下降算法(Stochastic Average Gradient descent) [6]。在大数据集上的表现更快,大数据集指样本量大且特征数多。

“saga” 求解器 [7] 是 “sag” 的一类变体,它支持非平滑(non-smooth)的 L1 正则选项 penalty="l1" 。因此对于稀疏多项式 logistic 回归 ,往往选用该求解器。

一言以蔽之,选用求解器可遵循如下规则:

CaseSolver
L1正则“liblinear” or “saga”
多项式损失(multinomial loss)“lbfgs”, “sag”, “saga” or “newton-cg”
大数据集(n_samples)“sag” or “saga”

“saga” 一般都是最佳的选择,但出于一些历史遗留原因默认的是 “liblinear” 。

对于大数据集,还可以用 SGDClassifier ,并使用对数损失(’log’ loss)

laogistic的属性

.decision_function(x)

.fit_transform(x,y)

.transform(x)

.score(x,y) 分类器的accury得分

逻辑回归是一个二分类模型,它的参数设置包括正则化参数、学习率和迭代次数等。在Python中,常用的逻辑回归模型有sklearn库中的LogisticRegression和statsmodels库中的Logit。 下面是一个使用sklearn库中的LogisticRegression模型的例子: ``` python from sklearn.linear_model import LogisticRegression # 准备数据 X = [[1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7]] y = [0, 0, 0, 1, 1, 1] # 定义模型并设置参数 clf = LogisticRegression(penalty='l2', C=1.0, max_iter=100, solver='liblinear') # 拟合模型 clf.fit(X, y) # 预测新的数据 print(clf.predict([[7, 8], [8, 9]])) ``` 在上面的例子中,我们定义了一个LogisticRegression对象clf,并设置了正则化参数penalty='l2'、正则化强度C=1.0、最大迭代次数max_iter=100和求解器solver='liblinear'。然后我们使用fit()方法拟合模型,并使用predict()方法预测新的数据。 除了上述参数,LogisticRegression对象还有其他参数,例如fit_intercept(是否拟合截距项)、class_weight(类别权重)等,可以根据实际情况进行设置。 如果使用statsmodels库中的Logit模型,代码如下: ``` python import statsmodels.api as sm # 准备数据 X = [[1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7]] y = [0, 0, 0, 1, 1, 1] # 添加截距项 X = sm.add_constant(X) # 定义模型并设置参数 model = sm.Logit(y, X) result = model.fit(method='newton', maxiter=100) # 打印模型结果 print(result.summary()) # 预测新的数据 print(result.predict([[1, 2], [7, 8], [8, 9]])) ``` 在上面的例子中,我们使用了statsmodels库中的Logit类定义模型,并设置了method='newton'、maxiter=100等参数。然后使用fit()方法拟合模型,并使用summary()方法打印模型结果。最后我们使用predict()方法预测新的数据。需要注意的是,statsmodels库中的Logit模型需要手动添加截距项,并且不支持正则化,如果需要正则化,则需要使用其他方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值