鲍鱼数据集案例分析-预测鲍鱼年龄(线性回归/梯度下降法实操)

本文对UCI机器学习库中的鲍鱼数据集进行了探索性分析,包括数据预处理(如OneHot编码、特征计算和筛选),然后实现了线性回归、岭回归和LASSO回归模型。通过对模型的评估(如MAE、MSE和R2系数)和残差图分析,展示了不同模型的预测性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据集来源UCI Machine Learning Repository: Abalone Data Set

一、数据集探索性分析

import pandas as pd
import numpy as np
import seaborn as sns
data = pd.read_csv("abalone_dataset.csv")
data.head()

#查看数据集中样本数量和特征数量
data.shape
#查看数据信息,检查是否有缺失值
data.info()

 

data.describe()

 

数据集一共有4177个样本,每个样本有9个特征。其中rings为鲍鱼环数,加上1.5等于鲍鱼年龄,是预测变量。除了sex为离散特征,其余都为连续变量。

#观察sex列的取值分布情况
import numpy as np
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()官网 seaborn.pairplot — seaborn 0.12.2 documentation

默认情况下,此函数将创建一个轴网格,这样数据中的每个数字变量将在单行的y轴和单列的x轴上共享。对角图的处理方式不同:绘制单变量分布图以显示每列数据的边际分布。也可以显示变量的子集或在行和列上绘制不同的变量。

#连续特征之间的散点图
sns.pairplot(data,hue='sex')

* 1.第一行观察得出:length和diameter、height存在明显的线性关系
* 2.最后一行观察得出:rings与各个特征均存在正相关性,其中与height的线性关系最为直观
* 3.对角线观察得出:sex“I”在各个特征取值明显小于成年鲍鱼

#计算特征之间的相关系数矩阵
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()

二、鲍鱼数据预处理

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Suki百香果

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值