by28777换哪了 by28777( 六 )


by28777换哪了  by28777

文章插图
二分类问题的概率与自变量之间的关系图形往往是一个S型曲线 , 如图17.10所示 , 采用的Sigmoid函数实现 。这里我们将该函数定义如下:
by28777换哪了  by28777

文章插图
函数的定义域为全体实数 , 值域在[0,1]之间 , x轴在0点对应的结果为0.5 。当x取值足够大的时候 , 可以看成0或1两类问题 , 大于0.5可以认为是1类问题 , 反之是0类问题 , 而刚好是0.5 , 则可以划分至0类或1类 。对于0-1型变量 , y=1的概率分布公式定义如下:
by28777换哪了  by28777

文章插图
y=0的概率分布公式定义如下:
by28777换哪了  by28777

文章插图
其离散型随机变量期望值公式如下:
by28777换哪了  by28777

文章插图
采用线性模型进行分析 , 其公式变换如下:
by28777换哪了  by28777

文章插图
而实际应用中 , 概率p与因变量往往是非线性的 , 为了解决该类问题 , 我们引入了logit变换 , 使得logit§与自变量之间存在线性相关的关系 , 逻辑回归模型定义如下:
by28777换哪了  by28777

文章插图
通过推导 , 概率p变换如下 , 这与Sigmoid函数相符 , 也体现了概率p与因变量之间的非线性关系 。以0.5为界限 , 预测p大于0.5时 , 我们判断此时y更可能为1 , 否则y为0 。
by28777换哪了  by28777

文章插图
得到所需的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函数及回归参数θ的 *** 就不在叙述 , 原理和前面介绍的一样 , 请读者下去深入研究 。
by28777换哪了  by28777

文章插图
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).鸢尾花数据集

推荐阅读