鸢尾花的逻辑回归实验

本文通过Iris数据集展示了使用逻辑回归进行2类分类的实验过程。首先进行了数据预处理,包括特征缩放和类别编码。然后,通过散点图和直方图分析了数据的可分性,选择花萼长度和宽度作为特征。接着,利用LogisticRegression进行模型训练,并通过GridSearchCV进行超参数调优。最后,绘制了决策边界、ROC曲线,评估模型性能。
摘要由CSDN通过智能技术生成
# %% md
## Iris数据集上用2维特征、2类分类可视化
#决策边界
#ROC曲线
#PR曲线
# %%
import pandas as pd
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
# 特征缩放:数据标准化
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import roc_curve, auc
# 将数据分割训练数据与测试数据
from sklearn.model_selection import train_test_split

from sklearn.model_selection import GridSearchCV
from sklearn.linear_model import LogisticRegression

import seaborn as sns

# 显示中文
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']

# %%

# 读取数据
# csv文件没有列名,增加列名
# 花萼长度、宽度;花瓣长度、宽度
feat_names = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'Class']

dpath = "./data/"
df = pd.read_csv(dpath + "iris.csv", names=feat_names, header=None)

# 通过观察前5行,了解数据每列(特征)的概况
df.head()

# %%

# 类别
unique_Class = df['Class'].unique()

# %%

# 只考虑两类分类:setosa vs. non_setosa
target_map = {'Iris-setosa': 0,  # 山鸢尾
              'Iris-versicolor': 1,  # 变色鸢尾
              'Iris-virginica': 1}  # 2,弗吉尼亚鸢尾

# Use the pandas apply method to numerically encode our attrition target variable
df['Class'] = df['Class'].apply(lambda x: target_map[x])


df.head()

# %%

# 查看不同类别下特征的直方图,初步了解特征的可分性
# 3个类别的颜色
colors = ['blue', 'red', 'green']
# plot histogramdf.shape[0]
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值