scikit-learn文档中的数据生成器

目录

1. make_classification:

2. make_regression:

3. make_blobs:

4. make_moons:

5.make_circles 

6. make_sparse_coded_signal:


1. make_classification:

这是一个用于生成复杂二维数据的函数,通常用于可视化分类器的学习过程或者测试机器学习算法的性能。

from sklearn.datasets import make_classificationX, y = make_classification(n_samples=1000, n_features=20, n_classes=3)

make_classification的主要参数包括:

  • n_samples:生成的样本数。
  • n_features:每个样本的特征数。这个参数决定了生成的数据集的维度。
  • n_informative:具有信息量的特征的数量。这个参数决定了特征集中的特征有多少是有助于分类的。
  • n_redundant:冗余特征的数量。这个参数决定了特征集中的特征有多少是重复或者没有信息的。
  • random_state:随机数生成器的种子。这确保了每次运行代码时生成的数据集都是一样的。
import matplotlib.pyplot as plt
from sklearn.datasets import make_classificationX, Y = make_classification(n_samples=100, n_classes=4, n_clusters_per_class=1)
plt.scatter(X[:, 0], X[:, 1], marker="o", c=Y, s=25)plt.show()

 

可以看出它生成的各类数据交织在一起,很难做线性的分类。

2. make_regression:

生成一个随机的回归问题数据集,可以设置特征数量、噪声等级等。示例:

from sklearn.datasets import make_regressionX, y = make_regression(n_samples=100, n_features=2)

make_regression的主要参数包括:

  • n_samples:生成的样本数。
  • n_features:每个样本的特征数。通常为一个较小的值,表示我们生成的是一维数据。
  • noise:噪音的大小。它为数据添加一些随机噪声,以使结果更接近现实情况。
from sklearn.datasets import make_regressionfig, ax = plt.subplots(1, 3)
fig.set_size_inches(9, 3)X, y = make_regression(n_samples=100, n_features=1, noise=20)
ax[0].scatter(X[:, 0], y, marker="o")
ax[0].set_title("noise=20")X, y = make_regression(n_samples=100, n_features=1, noise=10)
ax[1].scatter(X[:, 0], y, marker="o")
ax[1].set_title("noise=10")X, y = make_regression(n_samples=100, n_features=1, noise=1)
ax[2].scatter(X[:, 0], y, marker="o")
ax[2].set_title("noise=1")plt.show()

 

3. make_blobs:

生成一组聚类问题的数据集,可以设置聚类数量、中心点数量、特征数量等。示例:

from sklearn.datasets import make_blobsX, y = make_blobs(n_samples=300, centers=4, n_features=2)

make_blobs的主要参数包括:

  • n_samples:生成的样本数。
  • n_features:每个样本的特征数。通常为2,表示我们生成的是二维数据。
  • centers:聚类的数量。即生成的样本会被分为多少类。
  • cluster_std:每个聚类的标准差。这决定了聚类的形状和大小。
  • shuffle:是否在生成数据后打乱样本。
  • random_state:随机数生成器的种子。这确保了每次运行代码时生成的数据集都是一样的。
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobsX, Y = make_blobs(n_samples=1000, centers=5)
plt.scatter(X[:, 0], X[:, 1], marker="o", c=Y, s=25)plt.show()

 

4. make_moons:

和函数名称所表达的一样,它是一个用于生成形状类似于月牙的数据集的函数,通常用于可视化分类器的学习过程或者测试机器学习算法的性能。

from sklearn.datasets import make_moonsX2, y2 = make_moons(n_samples=1000, noise=0.1)

make_moons的主要参数包括:

  • n_samples:生成的样本数。
  • noise:在数据集中添加的噪声的标准差。这个参数决定了月牙的噪声程度。
  • random_state:随机数生成器的种子。这确保了每次运行代码时生成的数据集都是一样的。
from sklearn.datasets import make_moonsfig, ax = plt.subplots(1, 3)
fig.set_size_inches(9, 3)X, Y = make_moons(noise=0.01, n_samples=1000)
ax[0].scatter(X[:, 0], X[:, 1], marker="o", c=Y, s=25)
ax[0].set_title("noise=0.01")X, Y = make_moons(noise=0.05, n_samples=1000)
ax[1].scatter(X[:, 0], X[:, 1], marker="o", c=Y, s=25)
ax[1].set_title("noise=0.05")X, Y = make_moons(noise=0.5, n_samples=1000)
ax[2].scatter(X[:, 0], X[:, 1], marker="o", c=Y, s=25)
ax[2].set_title("noise=0.5")plt.show()

 

 noise越小,数据的分类越明显。

5.make_circles 

from sklearn.datasets import make_circlesX1, y1 = make_circles(n_samples=1000, noise=0.05)

参数和上面一样

from sklearn.datasets import make_circlesfig, ax = plt.subplots(1, 3)
fig.set_size_inches(9, 3)X, Y = make_circles(noise=0.01, n_samples=1000)
ax[0].scatter(X[:, 0], X[:, 1], marker="o", c=Y, s=25)
ax[0].set_title("noise=0.01")X, Y = make_circles(noise=0.05, n_samples=1000)
ax[1].scatter(X[:, 0], X[:, 1], marker="o", c=Y, s=25)
ax[1].set_title("noise=0.05")X, Y = make_circles(noise=0.5, n_samples=1000)
ax[2].scatter(X[:, 0], X[:, 1], marker="o", c=Y, s=25)
ax[2].set_title("noise=0.5")plt.show()

 

6. make_sparse_coded_signal:

生成一个稀疏编码信号数据集,用于稀疏信号恢复问题。示例:

from sklearn.datasets import make_sparse_coded_signalX, y, w = make_sparse_coded_signal(n_samples=100, n_components=20)

 make_sparse_coded_signal的主要参数包括:

  • n_samples(int):生成的样本数量。默认值为 100。

  • n_components(int):生成的信号的原子数量(即特征数)。默认值为 10。

  • n_features(int):样本的特征数。默认值为 100。

  • n_nonzero_coefs(int):每个样本中非零系数的数量。默认值为 10。

  • random_state(int或RandomState实例,可选):用于随机数生成器的种子。默认值为 None。

  • normalize_dictionary(boolean):是否对生成的字典进行归一化处理。默认值为 True。

该函数返回三个值:

  • X:生成的稀疏信号数据集,包含了 n_samples 个样本和 n_features 个特征。

  • y:样本的目标值或标签。

  • dictionary:用于生成信号的字典或基向量。

from sklearn.datasets import make_sparse_coded_signal
import matplotlib.pyplot as pltX, y, dictionary = make_sparse_coded_signal(n_samples=100, n_components=20, n_features=100, n_nonzero_coefs=5, random_state=42)plt.scatter(X[:, 0], X[:, 1], marker="o", c=X.sum(axis=1), cmap='viridis', s=25)  # 使用样本特征值的和来作为颜色的映射
plt.colorbar()  # 添加颜色条
plt.show()

 

参考【scikit-learn基础】--『数据加载』之样本生成器 - 知乎 (zhihu.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/581025.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kali Linux如何启动SSH并在Windows系统远程连接

文章目录 1. 启动kali ssh 服务2. kali 安装cpolar 内网穿透3. 配置kali ssh公网地址4. 远程连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 简单几步通过[cpolar 内网穿透](cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站)软件实现ssh 远程连接kali! …

工具系列:TimeGPT_(9)模型交叉验证

交叉验证 文章目录 交叉验证外生变量比较不同的模型 时间序列预测中的主要挑战之一是随着时间的推移固有的不确定性和变异性,因此验证所采用的模型的准确性和可靠性至关重要。交叉验证是一种强大的模型验证技术,特别适用于此任务,因为它提供了…

使用 GitHub 进行团队协作的操作指南

目录 前言1 使用github进行团队开发的意义2 邀请成员加入团队3 克隆和提交代码3.1 克隆远程仓库到本地3.2 加入暂存区3.3 提交修改到本地仓库3.4 设置本地仓库和远程仓库的关联3.5 将本地仓库的代码推送到远程仓库 结语 前言 GitHub 是一个广泛使用的基于 Git 的代码托管平台&…

Java - 获取 Jar 包内的 pom.xml 文件

目录 一.引言 二.通过 jar 命令 ◆ 查看 Jar 包内文件 ◆ 导出 Pom.xml ◆ 导出 Jar 包内文件 三.通过 unzip 命令 ◆ 导出 Jar 包内文件 四.总结 一.引言 引用其他同学的 Jar 包时,需要获取其对应 jar 包内的 pom.xml 文件检查版本依赖关系,下…

MYSQL存储过程和存储函数-数据库实验五

Mysql数据库实验及练习题相关 MySQL 数据库和表的管理-数据库实验一 MySQL连接查询、索引、视图-数据库实验二、实验三 MySQL约束、触发器-数据库实验四 MYSQL存储过程和存储函数-数据库实验五 MySQL批量随机生成name、TEL、idNumber MYSQL数据库的安全管理-数据库实验六 MYSQ…

基于JetCache整合实现一级、二级缓存方案(方案实现)

目录 一、整体方案说明 1.1 需求说明 1.2 整体方案实现组件结构图 二、Caffeine缓存实现 2.1 组件说明 2.2 组件结构图 2.3 组件Maven依赖 2.4 组件功能实现源码 2.4.1 CaffeineCacheManager扩展实现 2.4.2 CaffeineConfiguration配置类实现 2.4.3 涉及其他组件的类 …

如何在Android Termux中使用SFTP实现远程传输文件

文章目录 1. 安装openSSH2. 安装cpolar3. 远程SFTP连接配置4. 远程SFTP访问5. 配置固定远程连接地址6、结语 SFTP(SSH File Transfer Protocol)是一种基于SSH(Secure Shell)安全协议的文件传输协议。与FTP协议相比,SFT…

Spring Boot 中的虚拟线程

在本文中,我将讨论 Spring Boot 中的虚拟线程。 什么是虚拟线程? 虚拟线程作为 Java 中的一项功能引入,旨在简化并发性。 Virtual threads 是 轻量级的线程,由 Java Virtual Machine 而不是操作系统管理。它们被设计为易于使用且…

ElasticSearch:centos7安装elasticsearch7,kibana,ik中文分词器,云服务器安装elasticsearch

系统:centos7 elasticsearch: 7.17.16 安装目录:/usr/local 云服务器的安全组:开放 9200 和5601的端口 一、下载安装elasticsearch7.17.16 1、安装 #进入安装目录 cd /usr/local#下载elasticsearch wget https://artifacts.elastic.co/d…

Elasticsearch:在不停机的情况下优化 Elasticsearch Reindex

实现零停机、高效率和成功迁移更新的指南。更多阅读:Elasticsearch:如何轻松安全地对实时 Elasticsearch 索引 reindex 你的数据。 在使用 Elasticsearch 的时候,总会有需要修改索引映射的时候,遇到这种情况,我们只能做…

前端实现websocket类封装

随着Web应用程序的发展,越来越多的人开始利用Websocket技术来构建实时应用程序。Websocket是一种在客户端和服务器之间建立持久连接的协议。这种协议可以在一个单独的连接上实现双向通信。与HTTP请求-响应模型不同,Websocket允许服务器自主地向客户端发送…

想要学会JVM调优,先掌握JVM内存模型和JVM运行原理

1、前言 今天将和你一起探讨Java虚拟机(JVM)的性能调优。 JVM算是面试中的高频问题了,通常情况下总会有人问到:请你讲解下 JVM 的内存模型,JVM 的 性能调优做过? 2、为什么 JVM 在 Java 中如此重要 首…

利用网络教育系统构建个性化学习平台

在现代教育中,网络教育系统作为一种创新的学习方式,为学生提供了更加个性化和灵活的学习体验。在本文中,我们将通过简单的技术代码,演示如何构建一个基础的网络教育系统,为学生提供个性化的学习路径和资源。 1. 环境…

在Go语言中实现HTTP请求的缓存

大家好,我是你们可爱的编程小助手,今天我们要一起探讨如何使用Go语言实现HTTP请求的缓存。听起来是不是很酷?让我们开始吧! 首先,我们要明白什么是缓存。简单来说,缓存就是将数据存储在内存中,…

Flutter配置Android和IOS允许http访问

默认情况下,Android和IOS只支持对https的访问,如果需要访问不安全的连接,也就是http,需要做以下配置。 Android 在res目录下的xml目录中(如果不存在,先创建xml目录),创建一个xml文件network_security_con…

Appium+python自动化(三)- SDK Manager(超详解)

简介 本来宏哥一开始打算用真机做的,所以在前边搭建环境时候就没有下载SDK,但是由于许多小伙伴通过博客发短消息给宏哥留言说是没有真机,所以顺应民意整理一下模拟器,毕竟“得民心者,得天下”。SDK顾名思义&#xff0c…

【Linux学习笔记】Linux下nginx环境搭建

1、下载nginx 安装rpm命令: rpm ivh nginx-release.rpm。(直接使用linux命令下载wget http://nginx.org/packages/rhel/6/noarch/RPMS/nginx-release-rhel-6-0.el6.ngx.noarch.rpm 2、设置nginx开机启动 chkconfig nginx on 3、开启nginx服务 方法一:service nginx…

引力魔方的基础知识总结

1.简介:引力魔方是投放推荐广告的渠道,融合了钻展和超推;更新升级平台之后统一叫做人群精准推广; 2.展位:包括淘宝首页、内页频道页、门户、帮派、画报等多个淘宝站内广告位 ,每天拥有超过8亿的展现量&…

快速排序:高效分割与递归,排序领域的王者算法

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《数据结构&算法》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 📋 前言 快速排序这个名词,快排之所以叫快排肯定是有点东西的。他在处理大规模数据集时表现及其…

怎么设置Facebook双重验证,让Facebook账号更稳定?

对于跨境电商而言,Facebook 账号被封是常有的事,原因之一可能是没有给 Facebook 设置双重验证,今天就和大家科普一下什么是 Facebook双重验证以及如何设置,另外,作为跨境卖家,我们还需要了解如何保护 Faceb…