回归综合案例——利用回归模型预测鲍鱼年龄

该博客通过分析鲍鱼数据集,使用线性回归和岭回归模型预测鲍鱼年龄。首先进行数据探索,发现特征间的关系,接着对数据预处理,包括Onehot编码和年龄计算,并划分训练测试集。接着实现线性回归和岭回归,比较不同方法的效果,最终评估模型性能。
摘要由CSDN通过智能技术生成

回归综合案例——利用回归模型预测鲍鱼年龄

1 数据集探索性分析

首先将鲍鱼数据集abalone_dataset.csv读取为pandas的DataFrame格式。

import pandas as pd
import warnings
warnings.filterwarnings('ignore')
data = pd.read_csv(r"C:\Users\86182\Desktop\abalone_dataset.csv")
data.head()

在这里插入图片描述

#查看数据集中样本数量和特征数量
data.shape

(4177,9)

#查看数据信息,检查是否有缺失值
data.info()

在这里插入图片描述

data.describe()

在这里插入图片描述
数据集一共有4177个样本,每个样本有9个特征,其中rings为鲍鱼环数,能够代表鲍鱼年龄,是预测变量。除了sex为离散特征,其余都为连续变量。

观察sex列的取值分布情况。

import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
sns.countplot(x = "sex",data = data)

在这里插入图片描述

data['sex'].value_counts()

在这里插入图片描述
对于连续特征,可以使用seaborn的distplot函数绘制直方图观察特征取值情况。我们将8个连续特征的直方图绘制在一个4行2列的子图布局中。

i = 1 #子图计数
plt.figure(figsize=(16,8))
for col in data.columns[1:]:
    plt.subplot(4,2,i)
    i = i + 1
    sns.distplot(data[col])
    plt.tight_layout()

在这里插入图片描述

sns.pairplot(data,hue="sex")

在这里插入图片描述
从以上连续特征之间的散点图我们可以看到一些基本的结果:

●例如从第一行可以看到鲍鱼的长度length 和鲍鱼直径diameter 、鲍鱼高度height 存在明显的线性关系。鲍鱼长度与鮑鱼的四种重量之间存在明显的非线性关系。
●观察最后一行,鲍鱼环数rings 与各个特征均存在正相关性,中与height 的线性关系最为直观。
●观察对角线上的直方图,可以看到幼鲍鱼( sex 取值为")在各个特征上的取值明显小于其他成年鲍鱼。而雄性鲍鱼( sex取值为“M")和雌性鲍鱼( sex 取值为“F")各个特征取值分布没有明显的差异。

为了定量地分析特征之间的线性相关性,我们计算特征之间的相关系数矩阵,并借助热力图将相关性可视化。

corr_df = data.corr()
corr_df

在这里插入图片描述

fig,ax = plt.subplots(figsize=(12,12))
#绘制热力图
ax = sns.heatmap(corr_df,linewidths=.5,
                cmap="Greens",
                annot=True,
                xticklabels=corr_df.columns,
                yticklabels=corr_df.index)
ax.xaxis.set_label_position('top')
ax.xaxis.tick_top()

在这里插入图片描述

2 鲍鱼数据预处理

2.1 对sex特征进行Onehot编码,便于后续模型纳入哑变量
使用pandas的get_dummies函数对sex特征做Onehot编码处理。

sex_onehot = pd.get_dummies(data["sex"],prefix="sex")
data[sex_onehot.columns] = sex_onehot
data.head()

在这里插入图片描述
2.2 添加取值为 1 的特征

data["ones"] = 1
data.head()
  • 19
    点赞
  • 175
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值