机器学习Sklearn系列:(二)逻辑回归
2021/7/12 23:11:58
本文主要是介绍机器学习Sklearn系列:(二)逻辑回归,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
逻辑回归可以用来做分类任务,通俗理解,就是讲输入映射到到概率区间0-1,从而实现分类功能,逻辑回归的公式推导如下:
假设函数为:
\[\hat{y} = h_\theta(x,g(\theta^Tx))=\frac{1}{1+e^{-\theta^Tx}} \]其中,\(g(z) = \frac{1}{1+e^{-z}}\)
在这种情况下,损失函数可以通过最大似然估计推导出来,首先:
\[\begin{equation} \begin{aligned} p(y=1|x,\theta)&=h_\theta(x) \\ p(y=1|x,\theta) &=1-h_\theta(x) \end{aligned} \end{equation} \]拼到一起可以表示为:
\(P(y|x,\theta) = (h_\theta(x))^y(1-h_\theta(x))^{1-y}\)
通过最大似然估计可以得到:
\[L(\theta)=\prod^m_{i=1}P(y_i|x_i,\theta)=\prod^m_{i=1}(h_\theta(x_i))^{y_i}(1-h_\theta(x_i))^{1-y_i} \]取log之后加上负号和平均使得求最大值变成求最小值, 这样就得到了逻辑回归的损失函数。
\[\begin{equation} \begin{aligned} J(\theta) & =-\frac{1}{m}*logL(\theta) \\ &= -\frac{1}{m}\sum_{i=1}^m((y_i*log(h_\theta(x_i))+(1-y_i)log(1-h_\theta(x_i))) \end{aligned} \end{equation} \]sklearn中的逻辑回归函数
class sklearn.linear_model.LogisticRegression (penalty='l2', *, dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random_state=None, solver='lbfgs', max_iter=100, multi_class='auto', verbose=0, warm_start=False, n_jobs=None, l1_ratio=None)
常用参数说明
penalty是正则选项
逻辑回归参数,其中 penalty {‘l1’, ‘l2’, ‘elasticnet’, ‘none’}
当使用 elasticnet的时候, l1_ratio 表示l1 和 l2的比例
C是正则项的1/λ,由于sklearn中,C是在损失函数这一项里面,除过去就等价于放到了正则项前面。C越小,损失函数会越小,模型对损失函数的惩罚越重,正则化的效力越强,参数会逐渐被压缩得越来越小
multi_class
新版本中默认是 'auto',一般情况下使用默认就好
输入"ovr", "multinomial", "auto"来告知模型,我们要处理的分类问题的类型。默认是"ovr"。
'ovr':表示分类问题是二分类,或让模型使用"一对多"的形式来处理多分类问题。
'multinomial':表示处理多分类问题,这种输入在参数solver是'liblinear'时不可用。
"auto":表示会根据数据的分类情况和其他参数来确定模型要处理的分类问题的类型。比如说,如果数据是二分 类,或者solver的取值为"liblinear","auto"会默认选择"ovr"。反之,则会选择"nultinomial"。
sklarn中使用例子:
from sklearn.datasets import load_iris from sklearn.linear_model import LogisticRegression X, y = load_iris(return_X_y=True) clf = LogisticRegression(C=0.8,random_state=0).fit(X, y) clf.predict(X[:2, :]) clf.predict_proba(X[:2, :]) clf.score(X, y)
这篇关于机器学习Sklearn系列:(二)逻辑回归的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-18机器学习与数据分析的区别
- 2024-10-28机器学习资料入门指南
- 2024-10-25机器学习开发的几大威胁及解决之道
- 2024-10-24以下是五个必备的MLOps (机器学习运维)工具,帮助提升你的生产效率 ??
- 2024-10-15如何选择最佳的机器学习部署策略:云 vs. 边缘
- 2024-10-12从软件工程师转行成为机器学习工程师
- 2024-09-262024年机器学习路线图:精通之路步步为营指南
- 2024-09-13机器学习教程:初学者指南
- 2024-08-07从入门到精通:全面解析机器学习基础与实践
- 2024-01-24手把手教你使用MDK仿真调试