Wine红酒数据集是机器学习经典数据集,包含178个红酒样本的13项化学特征(如酒精含量、苹果酸、灰分等)及对应的3个类别,常用于分类任务实践,Python可通过sklearn.datasets模块轻松导入,结合pandas进行数据结构查看与预处理(如标准化、特征分析),再利用matplotlib可视化数据分布,本指南详细演示从数据加载到模型训练(如KNN、决策树)的全流程,帮助初学者掌握数据处理与机器学习建模基础,适合数据科学入门实践。
在机器学习与数据科学领域,经典数据集是算法验证、模型训练和技能练习的重要基础,Wine红酒数据集(Wine Dataset)作为多分类问题的代表性数据集,因其结构清晰、特征明确,被广泛应用于分类算法(如逻辑回归、决策树、支持向量机等)的入门实践,本文将详细介绍如何通过Python导入Wine红酒数据集,并对其基本结构进行解析,为后续数据分析与建模奠定基础。
认识Wine红酒数据集
Wine数据集最初由意大利Forini大学的机器学习实验室收集,后收录于UCI(加州大学欧文分校)机器学习仓库,是一个经典的小规模多分类数据集,该数据集包含178个样本,每个样本代表一种红酒,通过13个化学特征描述其成分,并标注为3个类别(分别对应3种不同品种的红酒,如Barolo、Grignolino等)。
核心信息概览:
- 样本数量:178个(类别0:59个,类别1:71个,类别2:48个)
- 特征数量:13个(均为连续型数值特征,如酒精含量、苹果酸浓度、灰分等)
- 任务类型:多分类(根据化学成分预测红酒品种)
- 数据来源:UCI Machine Learning Repository(https://archive.ics.uci.edu/ml/datasets/Wine)
环境准备:安装必要的Python库
在导入数据集前,需确保已安装以下Python库,它们是数据处理与机器学习的基础工具:
- pandas:用于数据读取、处理与分析(如CSV文件加载、DataFrame操作);
- numpy:用于数值计算(如数组操作、数学运算);
- scikit-learn:内置Wine数据集,可直接加载(或用于后续建模);
- matplotlib/seaborn(可选):用于数据可视化(如特征分布图、类别散点图)。
可通过以下命令安装(若未安装):
pip install pandas numpy scikit-learn matplotlib seaborn方法一:通过scikit-learn直接导入(推荐)
scikit-learn作为机器学习标准库,内置了Wine数据集,无需手动下载文件,适合快速调用。
导入数据集
使用
sklearn.datasets.load_wine()函数即可加载,返回一个类似字典的对象,包含数据、目标变量、特征名称等信息。from sklearn.datasets import load_wine # 加载Wine数据集 wine = load_wine() # 查看数据集结构(类似字典,键包括data、target、feature_names等) print(wine.keys())输出结果:
dict_keys(['data', 'target', 'frame', 'target_names', 'feature_names', 'DESCR'])提取关键数据
- 特征数据(X):
wine.data,形状为(178, 13),包含13个化学特征; - 目标变量(y):
wine.target,形状为(178,),包含3个类别标签(0、1、2); - 特征名称:
wine.feature_names,13个特征的名称列表; - 类别名称:
wine.target_names,3个红酒品种的名称(如'class_0'、'class_1'等)。
# 提取特征数据和目标变量
X = wine.data
y = wine.target
# 查看数据形状
print("特征数据形状:", X.shape) # 输出: (178, 13)
print("目标变量形状:", y.shape) # 输出: (178,)
# 查看前5个样本的特征数据
print("前5个样本的特征数据:\n", X[:5])
# 查看特征名称
print("特征名称:\n", wine.feature_names)
# 查看类别名称
print("类别名称:", wine.target_names)
转换为pandas DataFrame(便于分析)
虽然scikit-learn返回的numpy数组可直接用于建模,但转换为pandas DataFrame能更直观地查看和处理数据:
import pandas as pd
# 将特征数据转换为DataFrame
df = pd.DataFrame(X, columns=wine.feature_names)
# 添加目标变量列
df['target'] = y
# 查看前5行数据
print("DataFrame前5行:\n", df.head())
# 查看数据基本信息(列名、数据类型、非空值数量)
print("\n数据基本信息:\n", df.info())
输出结果:
DataFrame前5行:
alcohol malic_acid ash alcalinity_of_ash magnesium total_phenols flavanoids nonflavanoid_phenols proanthocyanins color_intensity hue od280/od315_of_diluted_wines proline target
0 14.23 1.71 2.43 15.6 127.0 2.80 3.06 0.28 2.29 5.64 1.04 3.92 1065.0 0
1 13.20 1.78 2.14 11.2 100.0 2.65 2.76 0.26 1.28 4.38 1.05 3.40 1050.0 0
2 13.16 2.36 2.67 18.6 101.0 2.80 3.24 0.30 2.81 5.68 1.03 3.17 1185.0 0
3 14.37 1.95 2.50 16.8 113.0 3.85 3.49 0.24 2.18 7.80 0.86 3.45 1480.0 0
4 13.24 2.59
澳大利亚红酒 The One ,南澳风土的极致凝萃,味蕾上的传奇之选,澳大利亚红酒The One,南澳风土极致凝萃,味蕾传奇之选
Gemstone红酒价格解析,揭秘高端葡萄酒的价值密码,Gemstone红酒价格与高端葡萄酒价值密码解析
Wine(红酒)在安卓上运行,跨平台兼容的技术探索与实践,Wine安卓跨平台兼容技术探索与实践
Is Pouring Wine into Your Car a Good Idea? Why You Should Never Do It,往汽车里倒酒?绝对不要做!
Red Wine: The Timeless Symbol of Status and Refinement,红酒,地位与雅致的不朽象征



