机器学习基础 LR学习

机器学习基础 LR学习1LR 是什么 LR 全称 LogisticRegr 逻辑回归

1 LR是什么?

LR全称Logistic Regression,逻辑回归。虽然名称中带有回归。逻辑回归,可以做分类的事情,也可以做回归的事情。
通常来讲,机器学习分为分类和回归两种模型,分类做的是离散值的预测,比如0,1,真,假等,回归做的是连续值的预测,比如概率,温度等。例如:用逻辑回归实现一个猫分类器,输入一张图片 x ,预测图片是否为猫,输出该图片中存在猫的概率结果 y。
Logistic Regression 虽然被称为回归,但其实际上是分类模型,并常用于二分类。Logistic Regression 因其简单、可并行化、可解释强深受工业界喜爱。
Logistic 回归的本质是:假设数据服从这个分布,然后使用极大似然估计做参数的估计。机器学习就是一个模型对外界的刺激(训练样本)做出反应,趋利避害(评价标准)。

2 为什么用LR?

简单。容易使用可视化图形进行展示。不像神经网络一样,中间的hidden layer无法描述。

3 怎么用LR?

这里以内嵌数据集合:鸢尾花数据集为例进行介绍,使用sklearn库中的LogisticRegression来分类我们的数据。
数据说明:
鸢花数据(iris)进行方法的尝试训练,该数据集一共包含5个变量,其中4个特征变量,1个目标分类变量。共有150个样本,目标变量为 花的类别 其都属于鸢尾属下的三个亚属,分别是山鸢尾 (Iris-setosa),变色鸢尾(Iris-versicolor)和维吉尼亚鸢尾(Iris-virginica)。包含的三种鸢尾花的四个特征,分别是花萼长度(cm)、花萼宽度(cm)、花瓣长度(cm)、花瓣宽度(cm),这些形态特征在过去被用来识别物种。
在这里插入图片描述

首先我们需要导入需要的库:

 基础函数库 import numpy as np import pandas as pd 绘图函数库 import matplotlib.pyplot as plt import seaborn as sns 

数据集准备:使用sklearn自带的数据集

我们利用sklearn中自带的iris数据作为数据载入,并利用Pandas转化为DataFrame格式 from sklearn.datasets import load_iris data = load_iris() #得到数据特征 iris_target = data.target #得到数据对应的标签 iris_features = pd.DataFrame(data=data.data, columns=data.feature_names) #利用Pandas转化为DataFrame格式 

导入数据后,我们可以先查看一下数据的相关信息,如前5行,后5行,数据类型,以及数据的均值,方差等

进行简单的数据查看,我们可以利用.head()头部.tail()尾部 iris_features.head() iris_features.tail() 利用.info()查看数据的整体信息 iris_features.info() 对于特征进行一些统计描述 iris_features.describe() 

统计一下标签分布情况

标签分布 pd.Series(iris_target).value_counts() 

合并特征数据和标签,迭代查看每两个特征对分类对影响

 合并标签和特征信息 iris_all = iris_features.copy() 进行浅拷贝,防止对于原始数据的修改 iris_all['target'] = iris_target 特征与标签组合的散点可视化 sns.pairplot(data=iris_all,diag_kind='hist', hue= 'target') plt.show() 

在这里插入图片描述
此时使用sklearn库中对LogisticRegression即可简单对使用我们对逻辑回归对我们对数据进行分类
这里使用了lbfgs优化器(拟牛顿法)

从sklearn中导入逻辑回归模型 from sklearn.linear_model import LogisticRegression 定义逻辑回归模型 clf=LogisticRegression(random_state=0,solver='lbfgs') 在训练集上训练逻辑回归模型 clf.fit(x_train,y_train) 

此时查看我们训练完后的参数w和b

查看其对应的w print('the weight of Logistic Regression:',clf.coef_) 查看其对应的w0 print('the intercept(w0) of Logistic Regression:',clf.intercept_) 

利用训练好的模型参数,进行预测:

 在训练集和测试集上分布利用训练好的模型进行预测 train_predict=clf.predict(x_train) test_predict=clf.predict(x_test) 

使用混淆矩阵进行展示我们的预测结果:

from sklearn import metrics 利用accuracy(准确度)【预测正确的样本数目占总预测样本数目的比例】评估模型效果 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)) 查看混淆矩阵(预测值和真实值的各类情况统计矩阵) confusion_matrix_result=metrics.confusion_matrix(test_predict,y_test) print('The confusion matrix result:\n',confusion_matrix_result) 利用热力图对于结果进行可视化 plt.figure(figsize=(8,6)) sns.heatmap(confusion_matrix_result,annot=True,cmap='Blues') plt.xlabel('Predictedlabels') plt.ylabel('Truelabels') plt.show() 

在这里插入图片描述

今天的文章 机器学习基础 LR学习分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2024-12-11 23:57
下一篇 2024-12-11 23:51

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/83274.html