
Sklearn 数据集大全Scikit-learn 提供了丰富的内置数据集分为Toy Datasets小玩具数据集和Real-World Datasets真实世界数据集两大类此外还有数据集生成器和获取工具。 Toy Datasets小型玩具数据集这些数据集可以直接通过load_*函数加载返回一个Bunch对象类似字典。通用加载模式fromsklearnimportdatasets datadatasets.load_xxx()# data.data → 特征矩阵 (numpy array)# data.target → 标签 (numpy array)# data.feature_names → 特征名称列表# data.target_names → 目标类别名称列表# data.DESCR → 数据集描述文本# data.filename → 数据集文件路径1.load_iris()— 鸢尾花数据集 最经典的分类入门数据集。fromsklearn.datasetsimportload_iris irisload_iris()X,yiris.data,iris.target# X.shape → (150, 4)# 特征: 花萼长度, 花萼宽度, 花瓣长度, 花瓣宽度 (cm)# 目标: 3 类 (setosa0, versicolor1, virginica2)属性值样本数150特征数4类别数3任务类型多分类2.load_digits()— 手写数字数据集 ✍️8x8 像素的手写数字图像。fromsklearn.datasetsimportload_digits digitsload_digits()X,ydigits.data,digits.target# X.shape → (1797, 64) 每个样本是 8x864 个像素值# y.shape → (1797,) 数字 0-9# digits.images.shape → (1797, 8, 8) 原始图像格式属性值样本数1797特征数64 (8×8 像素)类别数10 (0-9)任务类型多分类3.load_wine()— 葡萄酒数据集 意大利葡萄酒化学成分分析。fromsklearn.datasetsimportload_wine wineload_wine()X,ywine.data,wine.target# X.shape → (178, 13)# 特征: 酒精含量、苹果酸、灰分、镁含量、总酚等 13 种化学成分# 目标: 3 种葡萄酒品种 (class_0, class_1, class_2)属性值样本数178特征数13类别数3任务类型多分类4.load_breast_cancer()— 乳腺癌数据集 威斯康星州乳腺癌诊断数据二分类经典数据集。fromsklearn.datasetsimportload_breast_cancer cancerload_breast_cancer()X,ycancer.data,cancer.target# X.shape → (569, 30)# 特征: 细胞核的 30 个特征半径、纹理、周长等# 目标: 恶性0, 良性1属性值样本数569特征数30类别数2 (恶性/良性)任务类型二分类5.load_diabetes()— 糖尿病数据集 用于回归任务。fromsklearn.datasetsimportload_diabetes diabetesload_diabetes()X,ydiabetes.data,diabetes.target# X.shape → (442, 10)# 特征: 年龄、性别、BMI、血压、6 项血清测量值# 目标: 一年后疾病进展的量化指标连续值属性值样本数442特征数10任务类型回归6.load_linnerud()— 体能数据集 体能运动数据的多输出回归。fromsklearn.datasetsimportload_linnerud linnerudload_linnerud()# X.shape → (20, 3) 特征: 引体向上、仰卧起坐、跳跃# y.shape → (20, 3) 目标: 体重、腰围、脉搏属性值样本数20特征数3目标数3 (多输出)任务类型多输出回归7.load_boston()⚠️ 已移除波士顿房价数据集因伦理问题涉及种族歧视特征已从 sklearn 1.2 中移除。替代方案# 使用加州房价或糖尿病数据集fromsklearn.datasetsimportfetch_california_housing8.load_sample_image()/load_sample_images()— 示例图片 ️fromsklearn.datasetsimportload_sample_image,load_sample_images# 加载单张图片chinaload_sample_image(china.jpg)# (427, 640, 3)flowerload_sample_image(flower.jpg)# (427, 640, 3)# 加载所有示例图片imagesload_sample_images() Real-World Datasets真实世界数据集通过fetch_*函数从网络下载通常较大首次加载后会缓存到本地。1.fetch_california_housing()— 加州房价 替代波士顿房价的回归数据集。fromsklearn.datasetsimportfetch_california_housing housingfetch_california_housing()X,yhousing.data,housing.target# X.shape → (20640, 8)# 特征: 收入中位数、房龄、房间数、卧室数、人口、家庭数、纬度、经度# 目标: 房价中位数单位: 10万美元属性值样本数20640特征数8任务类型回归2.fetch_olivetti_faces()— 人脸数据集 fromsklearn.datasetsimportfetch_olivetti_faces facesfetch_olivetti_faces()# X.shape → (400, 4096) 64×64 灰度人脸# 共 40 个人, 每人 10 张# faces.images.shape → (400, 64, 64)3.fetch_20newsgroups()/fetch_20newsgroups_vectorized()— 新闻文本 NLP 文本分类经典数据集。fromsklearn.datasetsimportfetch_20newsgroups# 加载特定类别newsfetch_20newsgroups(subsettrain,categories[sci.space,rec.autos])X,ynews.data,news.target# X 是原始文本列表# 获取所有类别名target_namesnews.target_names# 向量化版本TF-IDFfromsklearn.datasetsimportfetch_20newsgroups_vectorized news_vecfetch_20newsgroups_vectorized()常用子集:train,test,all4.fetch_openml()— OpenML 数据集 从 OpenML 平台获取任意公开数据集。fromsklearn.datasetsimportfetch_openml# 加载 MNISTmnistfetch_openml(mnist_784,version1,parserauto)X,ymnist.data,mnist.target# X.shape → (70000, 784)# 加载 Titanictitanicfetch_openml(titanic,version1,parserauto)# 注意: 返回的是 DataFrame/Series非 ndarray5.fetch_covtype()— 森林覆盖类型 fromsklearn.datasetsimportfetch_covtype covfetch_covtype()# X.shape → (581012, 54)# 7 种森林覆盖类型分类6.fetch_lfw_people()/fetch_lfw_pairs()— 人脸识别 fromsklearn.datasetsimportfetch_lfw_people lfwfetch_lfw_people(min_faces_per_person70,resize0.4)# X.shape 取决于参数7.fetch_rcv1()— RCV1 文本数据集fromsklearn.datasetsimportfetch_rcv1 rcv1fetch_rcv1()# 大规模多标签文本分类8.fetch_kddcup99()— KDD Cup 99 网络入侵检测fromsklearn.datasetsimportfetch_kddcup99 kddfetch_kddcup99()# 网络入侵检测数据集9.fetch_species_distributions()— 物种分布 fromsklearn.datasetsimportfetch_species_distributions speciesfetch_species_distributions() 数据集生成器Synthetic Data Generators使用make_*函数生成合成数据非常适合测试和教学。1. 分类数据生成fromsklearn.datasetsimportmake_classification X,ymake_classification(n_samples1000,# 样本数n_features20,# 特征数n_informative10,# 有信息特征数n_redundant5,# 冗余特征数n_repeated2,# 重复特征数n_classes3,# 类别数n_clusters_per_class2,# 每类内的簇数random_state42)相关生成器:函数用途特点make_classification()通用分类数据高度可配置make_blobs()各向同性高斯簇简单聚类/分类make_moons()两个交错半圆形测试非线性边界make_circles()同心圆测试非线性边界make_multilabel_classification()多标签分类每个样本可有多个标签fromsklearn.datasetsimportmake_blobs,make_moons,make_circles# 高斯簇X,ymake_blobs(n_samples300,centers4,n_features2,random_state42)# 月亮形非线性二分类经典X,ymake_moons(n_samples300,noise0.1,random_state42)# 同心圆X,ymake_circles(n_samples300,noise0.05,factor0.5,random_state42)2. 回归数据生成fromsklearn.datasetsimportmake_regression X,ymake_regression(n_samples500,n_features10,n_informative5,noise10.0,# 噪声标准差bias0.0,# 偏置random_state42)函数用途make_regression()线性回归数据make_friedman1()Friedman #1 非线性回归make_friedman2()Friedman #2 四维输入make_friedman3()Friedman #3 四维输入make_sparse_uncorrelated()稀疏不相关回归make_low_rank_matrix()低秩矩阵make_sparse_coded_signal()稀疏编码信号make_spd_matrix()对称正定矩阵3. 聚类数据生成fromsklearn.datasetsimportmake_blobs X,ymake_blobs(n_samples500,n_features10,centers5,# 可以是 int 或 ndarraycluster_std1.0,# 簇标准差random_state42)函数用途make_blobs()高斯簇make_biclusters()双聚类make_checkerboard()棋盘形双聚类4. 其他生成器fromsklearn.datasetsimport(make_swiss_roll,# 瑞士卷流形学习经典make_s_curve,# S 曲线make_hastie_10_2,# Hastie 二分类数据make_gaussian_quantiles,# 高斯分位数)# 瑞士卷X,tmake_swiss_roll(n_samples1000,noise0.1,random_state42)# S 曲线X,tmake_s_curve(n_samples1000,noise0.1,random_state42) 数据加载工具函数clear_data_home()清除所有下载数据的缓存。fromsklearn.datasetsimportclear_data_home clear_data_home()# 删除 ~/scikit_learn_data/get_data_home()获取数据缓存目录路径。fromsklearn.datasetsimportget_data_home data_homeget_data_home()# ~/scikit_learn_data/dump_svmlight_file()/load_svmlight_file()处理 SVM-light 格式文件稀疏数据。fromsklearn.datasetsimportdump_svmlight_file,load_svmlight_file# 保存为 svmlight 格式dump_svmlight_file(X,y,data.svmlight)# 加载X,yload_svmlight_file(data.svmlight)支持多文件加载:X,y,qidload_svmlight_files([file1.svmlight,file2.svmlight]) 实用技巧将 Bunch 转换为 DataFrameimportpandasaspdfromsklearn.datasetsimportload_iris irisload_iris()dfpd.DataFrame(datairis.data,columnsiris.feature_names)df[target]iris.target df[target_name]df[target].apply(lambdax:iris.target_names[x])创建 Train/Test Splitfromsklearn.model_selectionimporttrain_test_splitfromsklearn.datasetsimportload_wine wineload_wine()X_train,X_test,y_train,y_testtrain_test_split(wine.data,wine.target,test_size0.3,random_state42,stratifywine.target)查看数据集完整描述fromsklearn.datasetsimportload_iris irisload_iris()print(iris.DESCR)# 打印详细描述[[sklearn-总览|← 返回总览]]