y=0的概率分布公式定义如下:
其离散型随机变量期望值公式如下:
采用线性模型进行分析,其公式变换如下:
而实际应用中,概率p与因变量往往是非线性的,为了解决该类问题 , 我们引入了logit变换,使得logit§与自变量之间存在线性相关的关系,逻辑回归模型定义如下:
通过推导,概率p变换如下,这与Sigmoid函数相符 , 也体现了概率p与因变量之间的非线性关系 。以0.5为界限,预测p大于0.5时,我们判断此时y更可能为1 , 否则y为0 。
得到所需的Sigmoid函数后,接下来只需要和前面的线性回归一样 , 拟合出该式中n个参数θ即可 。下列为绘制Sigmoid曲线,输出如图10所示 。
# -*- coding: utf-8 -*-# By:Eastmount CSDN 2021-07-03import matplotlib.pyplot as pltimport numpy as npdef Sigmoid(x):return 1.0 / (1.0 + np.exp(-x))x= np.arange(-10, 10, 0.1)h = Sigmoid(x) #Sigmoid函数plt.plot(x, h)plt.axvline(0.0, color='k') #坐标轴上加一条竖直的线(0位置)plt.axhspan(0.0, 1.0, facecolor='1.0', alpha=1.0, ls='dotted')plt.axhline(y=0.5, ls='dotted', color='k')plt.yticks([0.0, 0.5, 1.0]) #y轴标度plt.ylim(-0.1, 1.1) #y轴范围plt.show()
由于篇幅有限,逻辑回归构造损失函数J函数,求解最小J函数及回归参数θ的方法就不在叙述,原理和前面介绍的一样,请读者下去深入研究 。
2.LogisticRegressionLogisticRegression回归模型在Sklearn.linear_model子类下,调用sklearn逻辑回归算法步骤比较简单,即:
导入模型 。调用逻辑回归LogisticRegression()函数 。fit()训练 。调用fit(x,y)的方法来训练模型,其中x为数据的属性,y为所属类型 。predict()预测 。利用训练得到的模型对数据集进行预测,返回预测结果 。代码如下:
# -*- coding: utf-8 -*-# By:Eastmount CSDN 2021-07-03from sklearn.linear_model import LogisticRegression #导入逻辑回归模型clf = LogisticRegression()print(clf)clf.fit(train_feature,label)predict['label'] = clf.predict(predict_feature)
输出函数的构造方法如下:
LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,penalty='l2', random_state=None, solver='liblinear', tol=0.0001,verbose=0, warm_start=False)
这里仅介绍两个参数:参数penalty表示惩罚项,包括两个可选值L1和L2 。L1表示向量中各元素绝对值的和,常用于特征选择;L2表示向量中各个元素平方之和再开根号,当需要选择较多的特征时,使用L2参数,使他们都趋近于0 。C值的目标函数约束条件为:s.t.||w||1<C,默认值是0,C值越小 , 则正则化强度越大 。
3.鸢尾花数据集回归分析实例下面将结合Scikit-learn的逻辑回归模型分析鸢尾花数据集 。由于该数据分类标签划分为3类(0类、1类、2类),属于三分类问题,所以能利用逻辑回归模型对其进行分析 。
(1).鸢尾花数据集
在Sklearn机器学习包中,集成了各种各样的数据集,包括前面的糖尿病数据集,这里引入的是鸢尾花卉(Iris)数据集,它也是一个很常用的数据集 。该数据集一共包含4个特征变量,1个类别变量,共有150个样本 。其中四个特征分别是萼片的长度和宽度、花瓣的长度和宽度,一个类别变量是标记鸢尾花所属的分类情况,该值包含三种情况 , 即山鸢尾(Iris-setosa)、变色鸢尾(Iris-versicolor)和维吉尼亚鸢尾(Iris-virginica) 。鸢尾花数据集详细介绍如表2所示:
推荐阅读
- 医保查询+参保登记+缴费 肇庆粤医保小程序操作指南
- 青海大学附属医院单管核酸报告在哪里查询?
- 微信怎么查看银行卡余额 微信怎么查看银行卡余额查询
- 可以查询别人的社保吗? 可以查询别人的社保吗怎么查
- 常州社保查询个人账户缴费明细
- 男人约你动机查询表 男人约会动机查询表
- 收到违章短信但是12123上查询不到 12123上查询不到违章信息讲解
- 招行信用卡账单怎么查询 招行信用卡账单怎么查询不到
- 上海大众4s店 上海大众4s店地址查询
- 常州社保查询个人账户
