首页 > 其他分享 >scikit-learn.datasets 机器学习库

scikit-learn.datasets 机器学习库

时间:2024-01-24 11:55:05浏览次数:23  
标签:load 常用 datasets make scikit 生成 用于 learn 数据

scikit-learn是一个用于Python的机器学习库,提供了大量用于数据挖掘和数据分析的工具。以下是对这些函数和方法的简要描述:

  1. clear_data_home: 清除数据集目录的内容。
  2. dump_svmlight_file: 将数据集保存为SVMLight格式的文件。
  3. fetch_20newsgroups: 下载20个新闻组的文本数据集。
  4. fetch_20newsgroups_vectorized: 下载并矢量化20个新闻组的文本数据集。
  5. fetch_lfw_pairs: 下载Labeled Faces in the Wild的成对图像。
  6. fetch_lfw_people: 下载Labeled Faces in the Wild的图像集。
  7. fetch_olivetti_faces: 下载Olivetti人脸数据集。
  8. fetch_species_distributions: 下载物种分布数据集。
  9. fetch_california_housing: 下载加州房价数据集。
  10. fetch_covtype: 下载Covtype数据集,这是一个用于分类土地覆盖类型的数据集。
  11. fetch_rcv1: 下载RCV1数据集,这是一个文本分类数据集。
  12. fetch_kddcup99: 下载KDD Cup '99数据集,这是一个用于网络入侵检测的数据集。
  13. fetch_openml: 从OpenML数据库中获取数据集。
  14. get_data_home: 获取或设置数据集的存储路径。
  15. load_diabetes, load_digits, load_files, load_iris, load_breast_cancer, load_linnerud, load_sample_image, load_wine: 这些函数用于加载特定内置的数据集。
  16. make_biclusters, make_circles, make_classification, make_checkerboard, make_friedman1, ... make_swiss_roll: 这些是用于生成模拟数据的函数,用于测试和验证算法。

常用的函数包括:

  • fetch_20newsgroups: 用于获取新闻组数据集,常用于文本分类任务。
  • fetch_california_housing: 用于获取加州房价数据集,常用于回归任务。
  • load_iris: 用于加载鸢尾花数据集,常用于分类任务。
  • make_classification: 用于生成模拟的二分类或多分类数据集,常用于测试分类算法。

这些函数和方法为机器学习提供了大量的数据集,使得用户可以快速地测试和验证其算法和模型。

内置的数据集

这些函数都是来自 sklearn.datasets 模块,用于加载不同的数据集。下面是每个函数的简要描述和常用的数据集:

  1. load_diabetes:这个函数用于加载糖尿病数据集,通常用于回归分析。这个数据集包含从1991年到1994年的糖尿病患者的信息,如年龄、性别、体重、血压等。
  2. load_digits:这个函数用于加载手写数字数据集。它包含了1797个手写数字图片,每个图片的大小为8x8像素,每个像素的灰度值在0-15之间。这个数据集通常用于图像处理和机器学习中的分类任务。
  3. load_files:这个函数用于加载文件数据集,通常用于文件存储和读取。
  4. load_iris:这个函数用于加载鸢尾花数据集。这个数据集包含了150个样本,每个样本有四个特征(花萼长度、花萼宽度、花瓣长度、花瓣宽度),用于分类三种鸢尾花。这个数据集是机器学习和数据挖掘领域中最著名的数据集之一。
  5. load_breast_cancer:这个函数用于加载乳腺癌数据集,通常用于二分类问题(良性和恶性)。这个数据集包含了683个样本,每个样本有30个特征。
  6. load_linnerud:这个函数用于加载Linnerud数据集,通常用于多变量回归分析。这个数据集包含了30个样本,每个样本有6个特征和3个目标变量。
  7. load_sample_imageload_sample_images:这两个函数用于加载样本图像数据集,通常用于图像处理和机器学习中的分类任务。
  8. load_svmlight_fileload_svmlight_files:这两个函数用于加载SVMlight格式的数据集,通常用于支持向量机分类和回归任务。
  9. load_wine:这个函数用于加载葡萄酒数据集,通常用于分类任务。这个数据集包含了178个样本,每个样本有13个特征,用于分类三种葡萄酒类型。

常用的数据集包括 load_iris, load_digits, load_wine, load_breast_cancer 等。这些数据集在机器学习和数据分析领域中非常常见,可用于演示算法、训练模型和测试模型性能等。

from sklearn import datasets
iris = datasets.load_iris()

模拟数据集

这些函数都是来自 sklearn.datasets 模块,用于生成模拟数据集。下面是对每个函数的简要解释,以及哪些是常用的:

  1. make_biclusters:生成一个二聚类数据集。不常用。
  2. make_blobs:生成一个简单的二维聚类数据集。常用,主要用于演示聚类算法。
  3. make_circles:生成一个表示圆形的二分类数据集。不常用。
  4. make_classification:生成模拟的二分类或多分类数据集。常用,主要用于分类算法的演示。
  5. make_checkerboard:生成一个棋盘图案的数据集。不常用。
  6. make_friedman1, make_friedman2, make_friedman3:生成弗里德曼数据集,主要用于回归分析。不常用。
  7. make_gaussian_quantiles:生成高斯分布但具有不同分位数的高斯分布数据。不常用。
  8. make_hastie_10_2:生成一个10x2的二分类数据集,主要用于决策树的训练。不常用。
  9. make_low_rank_matrix:生成一个低秩矩阵,通常用于矩阵分解或低秩表示的算法。不常用。
  10. make_moons:生成半月形状的二分类数据集。不常用。
  11. make_multilabel_classification:生成多标签分类的数据集。不常用。
  12. make_regression:生成用于线性回归的仿真数据集。常用,主要用于回归分析的演示。
  13. make_s_curve:生成一个S形的二分类数据集。不常用。
  14. make_sparse_coded_signal:生成稀疏编码信号的数据集。不常用。
  15. make_sparse_spd_matrix:生成稀疏对称正定矩阵。不常用。
  16. make_sparse_uncorrelated:生成稀疏且不相关的数据集。不常用。
  17. make_spd_matrix:生成对称正定矩阵。不常用。
  18. make_swiss_roll:生成瑞士卷形状的数据集,通常用于流形学习算法的演示。不常用。

常用的有 make_blobs, make_classification, 和 make_regression,因为这些数据集经常用于基础机器学习算法的演示和验证。

make_blobs 二维聚类数据集

sklearn.datasets.make_blobs(
        n_samples=100, # 样本数量
        n_features=2, # 特征数量
        centers=None, # 中心个数 int,就是有几堆数据
        cluster_std=1.0, # 聚簇的标准差
        center_box(-10.0, 10.0), # 聚簇中心的边界框
        shuffle=True, # 是否洗牌样本
        random_state=None #随机种子
        )
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
import numpy as np

X, y = make_blobs(n_samples=500,
                  n_features=2,
                  centers=3,
                  cluster_std=1.5,
                  random_state=1) 
plt.figure()
plt.title('make_blobs')
plt.scatter(X[:, 0], X[:, 1], marker='o', c=np.squeeze(y), s=30)
plt.show()

image

make_classification 二分类或多分类数据集

sklearn.datasets.make_classification(
        n_samples=100, # 样本个数
        n_features=20, # 数据的特征量数,数据是一列还是几列
        n_informative=2, # 有效特征个数
        n_redundant=2, # 冗余特征个数(有效特征的随机组合)
        n_repeated=0, # 重复特征个数(有效特征和冗余特征的随机组合)
        n_classes=2, # 分类数量,默认为2
        n_clusters_per_class=2, # 蔟的个数
        weights=None, # 每个类的权重 用于分配样本点
        flip_y=0.01, # 随机交换样本的一段 y噪声值的比重
        class_sep=1.0, # 类与类之间区分清楚的程度
        hypercube=True, # 如果为True,则将簇放置在超立方体的顶点上;如果为False,则将簇放置在随机多面体的顶点上。
        shift=0.0, # 将各个特征的值移动,即加上或减去某个值
        scale=1.0, # 将各个特征的值乘上某个数,放大或缩小
        shuffle=True, # 是否洗牌样本
        random_state=None) # 随机种子
from sklearn.datasets import make_classification
import matplotlib.pyplot as plt
import matplotlib

X, y = make_classification(n_samples=50, n_features=2, n_redundant=0, random_state=0)
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=matplotlib.cm.get_cmap(name="bwr"), alpha=0.7)
plt.grid(True)
plt.show()

image

make_regression 线性回归的仿真数据集

sklearn.datasets.make_regression(
    n_samples=100, #样本数
    n_features=100, #特征数(自变量个数)
    n_informative=10, #参与建模特征数
    n_targets=1, #因变量个数
    bias=0.0, #偏差(截距)
    effective_rank=None, 
    tail_strength=0.5, 
    noise=0.0, #噪音
    shuffle=True, 
    coef=False, #是否输出coef标识
    random_state=None # 随机种子
)
import matplotlib.pyplot as plt
import matplotlib
from sklearn.datasets import make_regression

X, y = make_regression(n_samples=10, n_features=1, n_targets=1, noise=1.5, random_state=1)

plt.scatter(X, y, c=y, s=50, cmap=matplotlib.cm.get_cmap(name='viridis'), alpha=0.7)
plt.show()

image

注:随机种子
种子的取值范围通常是一个整数,其具体取值会根据不同的随机数生成方法而有所不同。在Python的 numpy 库中,RandomState 对象的种子参数通常是一个非负整数。这个种子值用于初始化随机数生成器的状态,从而确定将要生成的随机数序列。

一般来说,种子的取值范围可以是从0到任何正数的整数,但具体取值范围可能受到实现细节或特定算法的限制。如果种子值太大或太小,可能会导致生成随机数序列的质量下降或无法生成随机数。因此,在实际应用中,需要根据具体需求和算法的要求来选择合适的种子值。

确定随机数种子的大小并没有固定的规则,因为这取决于具体的应用场景和需求。以下是一些可能影响种子大小选择的因素:

  1. 随机性需求:如果需要更强的随机性,可以选择较大的种子值。较大的种子值可以增加随机数生成器的初始状态,从而产生更随机的随机数序列。
  2. 可重复性需求:如果需要实验或模拟的可重复性,可以选择较小的种子值。较小的种子值可以使随机数生成器具有较小的初始状态,从而产生更可预测的随机数序列。
  3. 算法和实现细节:不同的随机数生成算法和实现细节可能会有不同的种子取值范围和要求。因此,在选择种子值时,需要了解所使用的算法和实现细节的要求。
  4. 测试和调试:在开发和测试阶段,可能需要对不同的种子值进行测试和调试,以确定最佳的种子值。

总的来说,确定种子值的大小需要根据具体的需求和应用场景进行权衡和选择。如果需要更强的随机性,可以选择较大的种子值;如果需要实验或模拟的可重复性,可以选择较小的种子值。同时,需要考虑算法和实现细节的要求,并进行适当的测试和调试。

https://scikit-learn.org/stable/modules/classes.html#module-sklearn.datasets

标签:load,常用,datasets,make,scikit,生成,用于,learn,数据
From: https://www.cnblogs.com/vipsoft/p/17984189

相关文章

  • 【scikit-learn基础】--『回归模型评估』之偏差分析
    模型评估在统计学和机器学习中具有至关重要,它帮助我们主要目标是量化模型预测新数据的能力。本篇主要介绍模型评估时,如何利用scikit-learn帮助我们快速进行各种偏差的分析。1.**R²**分数R²分数(也叫决定系数),用于衡量模型预测的拟合优度,它表示模型中因变量的变异中,可由自变......
  • 神经网络优化篇:详解学习率衰减(Learning rate decay)
    学习率衰减加快学习算法的一个办法就是随时间慢慢减少学习率,将之称为学习率衰减,来看看如何做到,首先通过一个例子看看,为什么要计算学习率衰减。假设要使用mini-batch梯度下降法,mini-batch数量不大,大概64或者128个样本,在迭代过程中会有噪音(蓝色线),下降朝向这里的最小值,但是不会精......
  • 《Deep Long-Tailed Learning: A Survey》阅读笔记
    论文标题《DeepLong-TailedLearning:ASurvey》深度长尾学习:调查作者YifanZhang、BingyiKang、BryanHooi、ShuichengYan(IEEEFellow)和JiashiFeng来自新加坡国立大学计算机学院、字节跳动AILab和SEAAILab初读摘要长尾类别不平衡(long-tailedclassimbala......
  • ML系列-《The Hundred-Page Machine Learning book》-读书
    Abouttheauthor:作者简介安德烈·布可夫(AndriyBurkov)是一位机器学习专家,目前居住于加拿大魁北克省。他拥有人工智能博士学位,尤其擅长自然语言处理技术。目前,他是高德纳(Gartner)咨询公司机器学习开发团队的主管。该团队的主要工作是,使用浅层和深度学习技术,开发可用于生产环境......
  • 【scikit-learn基础】--『监督学习』之 空间聚类
    空间聚类算法是数据挖掘和机器学习领域中的一种重要技术。本篇介绍的基于密度的空间聚类算法的概念可以追溯到1990年代初期。随着数据量的增长和数据维度的增加,基于密度的算法逐渐引起了研究者的关注。其中,DBSCAN(Density-BasedSpatialClusteringofApplicationswithNoise)是......
  • 【scikit-learn基础】--『监督学习』之 谱聚类
    谱聚类算法基于图论,它的起源可以追溯到早期的图分割文献。不过,直至近年来,受益于计算机计算能力的提升,谱聚类算法才得到了广泛的研究和关注。谱聚类被广泛应用于图像分割、社交网络分析、推荐系统、文本聚类等领域。例如,在图像分割中,谱聚类可以有效地将图像划分为背景和前景;在社交......
  • AdaMCL: Adaptive Fusion Multi-View Contrastive Learning for Collaborative Filter
    AdaMCL:AdaptiveFusionMulti-ViewContrastiveLearningforCollaborativeFilteringAbstract​ 大多数基于CL的方法只利用原始的用户-项目交互图来构造CL任务,缺乏对高阶信息的显示利用。而且即使是使用高阶信息的基于CL的方法,高阶信息的接收字段也是固定的,没有考虑到节点之......
  • 基于标签值分布的强化学习推荐算法(Reinforcement Learning Recommendation Algorithm
    前言看论文的第三天,坚持下去。慢慢来,比较快。——唐迟本文基于2023年6月28日发表在MATHEMATICS上的一篇名为“基于标签值分布的强化学习推荐算法”(ReinforcementLearningRecommendationAlgorithmBasedonLabelValueDistribution)的文章。文章提出了一种基于标签分布......
  • 【scikit-learn基础】--『监督学习』之 层次聚类
    层次聚类算法是机器学习中常用的一种无监督学习算法,它用于将数据分为多个类别或层次。该方法在计算机科学、生物学、社会学等多个领域都有广泛应用。层次聚类算法的历史可以追溯到上世纪60年代,当时它主要被用于社会科学中。随着计算机技术的发展,这种方法在90年代得到了更为广泛的......
  • Adaptively sharing multi-levels of distributed representations in multi-task lea
    期刊:InformationSciences”(Wang等,2022,p.226)计算机科学1区top。2022年题目:“多任务学习中自适应共享多级分布式表示”(pdf)“Adaptivelysharingmulti-levelsofdistributedrepresentationsinmulti-tasklearning”(Wang等,2022,p.226)(pd......