社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

【机器学习】初学者如何获得机器学习和深度学习的练习数据?附几个方法

机器学习初学者 • 1 月前 • 38 次点击  

0.导语

初学者学习机器学习和深度学习的时候,经常会找不到练习的数据,本文提供了获取数据的一些方法。

一、scikit-learn自带数据集

Scikit-learn内置了很多可以用于机器学习的数据,可以用两行代码就可以使用这些数据。


一、自带数据集

自带的小的数据集为:sklearn.datasets.load_

load_bostonBoston房屋价格回归506*13
fetch_california_housing加州住房回归20640*9
load_diabetes糖尿病回归442*10
load_digits手写字分类1797*64
load_breast_cancer乳腺癌分类、聚类(357+212)*30
load_iris鸢尾花分类、聚类(50*3)*4
load_wine葡萄酒分类(59+71+48)*13
load_linnerud体能训练多分类20


怎么用:


数据集的信息关键字:


  • DESCR

    数据集的描述信息

  • data

    内部数据(即:X)

  • feature_names

    数据字段名

  • target

    数据标签(即:y)

  • target_names

    标签字段名(回归数据集无此项) 


使用方法(以load_iris为例)

数据介绍:

  • 一般用于做分类测试

  • 有150个数据集,共分为3类,每类50个样本。每个样本有4个特征。

  • 每条记录都有 4 项特征:包含4个特征(Sepal.Length(花萼长度)、Sepal.Width(花萼宽度)、Petal.Length(花瓣长度)、Petal.Width(花瓣宽度)),特征值都为正浮点数,单位为厘米。

  • 可以通过这4个特征预测鸢尾花卉属于(iris-setosa(山鸢尾), iris-versicolour(杂色鸢尾), iris-virginica(维吉尼亚鸢尾))中的哪一品种。

第一步:

导入数据

from sklearn.datasets import load_iris
iris = load_iris()


第二步:

定义X和y

X, y = iris.data, iris.target


此外,可以看下数据的维度:

X.shape,y.shape

输出为:

((150, 4), (150,))

查看特征名:
iris.feature_names
输出为:
['sepal length (cm)',
 'sepal width (cm)',
 'petal length (cm)',
 'petal width (cm)']

查看标签名:
iris.target_names

输出为:

array(['setosa', 'versicolor', 'virginica'], dtype='


划分训练集和测试集:




    
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25)


这样就把训练集和测试集按照3比1划分了,接下来就可以用机器学习算法进行训练和测试了。


小技巧:将数据转换为Dataframe格式(两种方法都可以):

import pandas as pd
df_X = pd.DataFrame(iris.data, columns=iris.feature_names)
#这个是X
df_y = pd.DataFrame(iris.target, columns=["target"])
#这个是y
df=pd.concat([df_X,df2],axis=1)#横向合并
df.head()


或者:

import numpy as np
import pandas as pd
col_names = iris['feature_names'] + ['target']
df = pd.DataFrame(data= np.c_[iris['data'], iris['target']], columns=col_names)
df.head()


输出结果一致:

图片


二、可在线下载的数据集(需要下载)

下载的数据集为:sklearn.datasets.fetch_

这类数据需要在线下载,有点慢

fetch_20newsgroups

用于文本分类、文本挖据和信息检索研究的国际标准数据集之一。数据集收集了大约20,000左右的新闻组文档,均匀分为20个不同主题的新闻组集合。返回一个可以被文本特征提取器

fetch_20newsgroups_vectorized

这是上面这个文本数据的向量化后的数据,返回一个已提取特征的文本序列,即不需要使用特征提取器

fetch_california_housing

加利福尼亚的房价数据,总计20640个样本,每个样本8个属性表示,以及房价作为target,所有属性值均为number,详情可调用fetch_california_housing()['DESCR']了解每个属性的具体含义;

fetch_covtype

森林植被类型,总计581012个样本,每个样本由54个维度表示(12个属性,其中2个分别是onehot4维和onehot40维),以及target表示植被类型1-7,所有属性值均为number,详情可调用fetch_covtype()['DESCR']了解每个属性的具体含义


fetch_kddcup99

KDD竞赛在1999年举行时采用的数据集,KDD99数据集仍然是网络入侵检测领域的事实Benckmark,为基于计算智能的网络入侵检测研究奠定基础,包含41项特征

fetch_lfw_pairs

该任务称为人脸验证:给定一对两张图片,二分类器必须预测这两个图片是否来自同一个人。

fetch_lfw_people

打好标签的人脸数据集

fetch_mldata

 mldata.org 中下载数据集

fetch_olivetti_faces

Olivetti 脸部图片数据集

fetch_rcv1

路透社新闻语聊数据集

fetch_species_distributions

物种分布数据集


使用方法与自带数据集一致,只是多了下载过程(示例:fetch_20newsgroups

from sklearn.datasets import fetch_20newsgroups
news = fetch_20newsgroups(subset= 'all'#本次使用的数据需要到互联网上下载
from sklearn.model_selection import train_test_split
#对数据训练集和测试件进行划分
X_train, X_test, y_train, y_test = train_test_split(
    news.data, news.target, test_size=0.25, random_state=33)



三、生成数据集

可以用来分类任务,可以用来回归任务,可以用来聚类任务,用于流形学习的,用于因子分解任务的,用于分类任务和聚类任务的:这些函数产生样本特征向量矩阵以及对应的类别标签集合


  • make_blobs:多类单标签数据集,为每个类分配一个或多个正态分布的点集

  • make_classification:多类单标签数据集,为每个类分配一个或多个正态分布的点集,提供了为数据添加噪声的方式,包括维度相关性,无效特征以及冗余特征等

  • make_gaussian-quantiles:将一个单高斯分布的点集划分为两个数量均等的点集,作为两类

  • make_hastie-10-2:产生一个相似的二元分类数据集,有10个维度

  • make_circle和make_moons:产生二维二元分类数据集来测试某些算法的性能,可以为数据集添加噪声,可以为二元分类器产生一些球形判决界面的数据

举例:

import matplotlib.pyplot as plt
from sklearn.datasets import make_moons
X, y = make_moons(n_samples=100, noise=0.15, random_state=42)
plt.title('make_moons function example')
plt.scatter(X[:,0],X[:,1],marker='o',c=y)
plt.show()
图片

深度学习数据集

1.通用综合平台

  • Kaggle(https://www.kaggle.com/datasets)
    全球最大的数据科学社区之一,包含海量来自企业、研究机构的数据集,覆盖图像分类(如 “CIFAR-10”)、自然语言处理(如 “IMDb 影评”)、推荐系统等场景,支持直接下载或通过 API 调用。
  • UCI Machine Learning Repository(https://archive.ics.uci.edu/ml/index.php)
    经典的学术数据集平台,包含大量结构化数据(如 “鸢尾花数据集”“波士顿房价数据集”)和多模态数据,适合基础算法验证。
  • Google Dataset Search(https://datasetsearch.research.google.com/)
    谷歌推出的数据集搜索引擎,可检索全球范围内的公开数据集,支持按领域(如医疗、环境)、格式(如 CSV、JSON)筛选。

2. 图像与计算机视觉

  • ImageNet(https://www.image-net.org/)
    最著名的图像数据集之一,包含超过 1400 万张标注图像,涵盖 2 万多个类别,是图像分类、目标检测等任务的基准数据集。
  • COCO(Common Objects in Context,https://cocodataset.org/)
    包含 33 万张图像,标注了目标检测、分割、关键点等信息,适合复杂场景下的视觉任务(如 “YOLO” 模型训练)。
  • MNIST(http://yann.lecun.com/exdb/mnist/)
    手写数字数据集(0-9),共 6 万张训练图和 1 万张测试图,是深度学习入门的经典案例数据。

3. 自然语言处理(NLP)

  • GLUE(General Language Understanding Evaluation,https://gluebenchmark.com/)
    包含 10 个 NLP 任务的数据集(如情感分析、语义相似度),用于评估预训练模型(如 BERT)的通用能力。
  • Hugging Face Datasets(https://huggingface.co/datasets)
    集成了数千个 NLP 数据集(如 “中文维基百科”“豆瓣影评”),支持直接与 Hugging Face 的模型库(Transformers)对接,方便快速训练。
  • 中文数据集
    :如 “THUCNews”(中文新闻分类)、“CLUECorpusSmall”(中文预训练语料)、“Weibo 情感分析数据集” 等,可通过 GitHub 或国内平台获取。

4. 音频与语音

  • LibriSpeech(https://www.openslr.org/12/)
    基于有声书籍的英语语音数据集,包含 1000 小时语音及对应文本,适合语音识别任务。
  • ESC-50(https://github.com/karoldvl/ESC-50)
    环境声音分类数据集,包含 50 类声音(如狗叫、雨声),共 2000 个音频片段。
  • 中文语音
    :如 “THCHS-30”(清华大学中文语音数据集)、“AISHELL”(开源中文语音语料库)。

5. 视频与时序数据

  • UCF101(https://www.crcv.ucf.edu/data/UCF101.php)
    动作识别数据集,包含 101 类动作(如跑步、打篮球)的视频,共 13320 个片段。
  • Kinetics(https://deepmind.com/research/open-source/kinetics)
    大规模视频数据集,涵盖 400/600/700 类人类动作,适合视频理解模型训练。

其它数据集

天池:

https://tianchi.aliyun.com/dataset

搜狗实验室:

http://www.sogou.com/labs/resource/list_pingce.php

DC竞赛:

https://www.pkbigdata.com/common/cmptIndex.html

DF竞赛:

https://www.datafountain.cn/datasets

科赛网

https://www.kesci.com/home/dataset

微软数据集

https://msropendata.com/


总结

本文为机器学习初学者提供了使用scikit-learn内置数据的方法,用两行代码就可以使用这些数据,可以进行大部分的机器学习实验了。

参考

https://scikit-learn.org/stable/datasets/index.html




    
图片

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/184395
 
38 次点击