赞
踩
PS. 逻辑回归算法原理,有很多优秀的帖子详细介绍过,这里不再赘述。
(或者后期有时间了再新写帖子专门记录原理)
目录
一、python逻辑回归简单案例
1. 加载相关库
# 基础函数库
import numpy as np
# 导入画图库
import matplotlib.pyplot as plt
import seaborn as sns
# 导入逻辑回归模型函数
from sklearn.linear_model import LogisticRegression
注:上边seaborn是python的一个强大的数据可视化库。
2. 构造数据和特征,并查看散点图
# 构造数据集
x_fearures = np.array([[-1, -2], [-2, -1], [-3, -2], [1, 3], [2, 1], [3, 2]])
print('数据:------')
print(x_fearures)
y_label = np.array([0, 0, 0, 1, 1, 1])
print('标签:------')
print(y_label)
# 查看数据散点图
plt.figure()
plt.scatter(x_fearures[:, 0], x_fearures[:, 1], c=y_label, s=50, cmap='viridis')
plt.title('Dataset')
plt.show()
输出结果和散点图如下:(从中可以看出我们构造了6个样本,每个样本2个特征,散点图对两个类数据分布也很明显)
3.训练逻辑回归模型,并查看参数
# 调用逻辑回归模型
lr_clf = LogisticRegression()
# 用逻辑回归模型拟合构造的数据集 (其拟合方程为 y = w0 + w1 * x1 + w2 * x2)
lr_clf = lr_clf.fit(x_fearures, y_label)
## 查看其对应模型的w1,w2
print('the weight of Logistic Regression:', lr_clf.coef_)
## 查看其对应模型的w0
print('the intercept(w0) of Logistic Regression:', lr_clf.intercept_)
输出结果如下:
4.构造一条可视化决策边界,来区分两个类别的数据:
# 可视化决策边界
plt.figure()
plt.scatter(x_fearures[:,0],x_fearures[:,1], c=y_label, s=50, cmap='viridis')
plt.title('Dataset')
nx, ny = 200, 100
# 获取feature中x轴和y轴上最小最大值
x_min, x_max = plt.xlim() # 设定坐标范围
y_min, y_max = plt.ylim()
# np.linspace:创建等差数列,np.meshgrid:网格坐标矩阵
print(np.linspace(x_min, x_max, nx)) # 区间内创建200个等差数列的数
print(' ')
x_grid, y_grid = np.meshgrid(np.linspace(x_min, x_max, nx), np.linspace(y_min, y_max, ny))
print(x_grid)
print(y_grid)
# np.c_: 添加列
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。