逻辑回归算法--阿里云天池

学习内容概括

了解 逻辑回归 的理论,掌握 逻辑回归 的 sklearn 函数调用使用并将其运用到鸢尾花数据集预测。

具体学习内容

Part1 Demo实践
Step1:库函数导入,sklearn包里导入LogisticRegression
Step2:模型训练,fit方法进行拟合
Step3:模型参数查看,查看模型的系数和截距,分别采用coef_,intercept_方法
Step4:数据和模型可视化,matplotlib.pyplot库的方法scatter进行散点图绘制,方法concur进行可视化决策边界绘制
Step5:模型预测,annotate()方法进行标注
Part2 基于鸢尾花(iris)数据集的逻辑回归分类实践
Step1:库函数导入,导入seaborn库
Step2:数据读取/载入,读取sklearn 中自带的 iris 数据:load_iris,
Step3:数据信息简单查看,利用.info()查看数据的整体信息,利用value_counts函数查看每个类别数量,利用.describe()对于特征进行一些统计描述
Step4:可视化描述,合并标签和特征信息,并采用sns.pairplot方法进行特征与标签组合的散点可视化,可判断出不同的特征组合对于不同类别的花的散点分布,以及大概的区分能力;sns.boxplot进行箱线图可视化,可判断出不同类别在不同特征上的分布差异情况。可导入Axes3D库,选取其前三个特征绘制三维散点图。
Step5:利用 逻辑回归模型 在二分类上 进行训练和预测,采用train_test_split函数将数据划分为训练集和测试集;选择其类别为0和1的样本 (不包括类别为2的样本);导入逻辑回归模型并在训练集上进行训练,训练集和测试集上分布利用训练好的模型进行预测;导入metrics函数,利用其accuracy_score方法评估模型效果(准确度评估),利用其confusion_matrix方法查看混淆矩阵;利用sns.heatmap方法绘制热力图对于混淆矩阵进行可视化。
Step5:利用 逻辑回归模型 在三分类(多分类)上 进行训练和预测,采用全类别的数据集,与二分类同样的方法和步骤进行训练预测。

学习重点记录1

Q.可视化决策边界如何绘制?
A.contour函数绘制轮廓线的方法,采用模型对坐标内大量的网格点进行分类,[0.5]的意思是我们要在z=0.5的地方画一条等高线,也就是predict_proba返回的所有结果的概率=0.5的那条分界线。
知识点:numpy的meshgrid函数生成坐标矩阵,plt.xlim获取坐标轴两端的最大值最小值,linspace用来创建等差数列,ravel函数在降维时默认是行序优先,np.c_是按行连接两个矩阵,就是把两矩阵左右相加,要求行数相等。

nx, ny = 200, 100
x_min,x_max = plt.xlim()
y_min,y_max = plt.ylim()
# print(x_min,x_max)
x_grid,y_grid = np.meshgrid(np.linspace(x_min,x_max,nx),np.linspace(y_min,y_max,ny))
print(x_grid.shape)
print(y_grid.shape)

输出:

(100, 200)
(100, 200)

可视化决策边界

z_proba = lr_clf.predict_proba(np.c_[x_grid.ravel(), y_grid.ravel()])
z_proba = z_proba[:, 1].reshape(x_grid.shape)
plt.contour(x_grid, y_grid, z_proba, [0.5], linewidths=2., colors='blue')

[0.5]输出
z=0.5
改为[0.2]

plt.contour(x_grid, y_grid, z_proba, [0.2], linewidths=2., colors='blue')

[0.2]输出
z=0.2
Q:如何评估模型效果?
A:这里采用accuracy(准确度)【预测正确的样本数目占总预测样本数目的比例】评估模型效果。
知识点:metrics.accuracy_score是指分类准确率分数是指所有分类正确的百分比。混淆矩阵是机器学习中总结分类模型预测结果的情形分析表,热力图对角线是真实分类和预测分类结果相一致的,其他位置的数字是真实分类和预测分类不一致的,即分类错误的数量。

from sklearn import metrics
print('The accuracy of the Logistic Regression is:',metrics.accuracy_score(y_train,train_predict))
print('The accuracy of the Logistic Regression is:',metrics.accuracy_score(y_test,test_predict))

输出

The accuracy of the Logistic Regression is: 0.9583333333333334
The accuracy of the Logistic Regression is: 0.8

查看混淆矩阵

## 查看混淆矩阵
confusion_matrix_result = metrics.confusion_matrix(test_predict,y_test)
print('The confusion matrix result:\n',confusion_matrix_result)

输出

The confusion matrix result:
 [[10  0  0]
 [ 0  7  3]
 [ 0  3  7]]

利用热力图对于结果进行可视化

plt.figure(figsize=(8, 6))
sns.heatmap(confusion_matrix_result, annot=True, cmap='Blues')
plt.xlabel('Predicted labels')
plt.ylabel('True labels')

输出:
热力图

学习重点记录2

Logistic回归虽然名字里带“回归”,但是它实际上是一种分类方法,主要用于两分类问题(即输出只有两种,分别代表两个类别),所以利用了Logistic函数(或称为Sigmoid函数),函数形式为
l o g i ( z ) = 1 1 + e − z logi(z)=\frac{1}{1+e^{-z}} logi(z)=1+ez1
函数图形
Logistic 函数是单调递增函数,并且在z=0的时候取值为0.5,并且 𝑙𝑜𝑔𝑖(⋅) 函数的取值范围为 (0,1)

逻辑回归从其原理上来说,逻辑回归其实是实现了一个决策边界:对于函数 y = 1 1 + e − z y=\frac{1}{1+e^{-z}} y=1+ez1,当 𝑧=>0 时, 𝑦=>0.5 ,分类为1,当 𝑧<0 时, 𝑦<0.5 ,分类为0,其对应的 𝑦 值我们可以视为类别1的概率预测值.

对于模型的训练而言:实质上来说就是利用数据求解出对应的模型的特定的 𝑤 。从而得到一个针对于当前数据的特征逻辑回归模型。

而对于多分类而言,将多个二分类的逻辑回归组合,即可实现多分类。

学习总结

理解可视化决策边界绘制的方法,绘制思想是规划均匀分布且密集的坐标矩阵,使用模型对坐标矩阵进行预测计算出概率,再通过概率得分等于0.5的点绘制边界轮廓线;
metrics函数可计算出准确率,并得出混淆矩阵,以及使用热力图对分类结果有很直观的判断哪些类别的预测上出现了一定的错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值