Sklearn入门之datasets的基本用法

         Sklearn全称:Scipy-toolkit  Learn是 一个基于scipy实现的的开源机器学习库。它提供了大量的算法和工具,用于数据挖掘和数据分析,包括分类、回归、聚类等多种任务。本文我将带你了解并入门Sklearn下的datasets在机器学习中的基本用法。

获取方式

pip install scikit-learn

模块结构

        在Python中,要想熟练地使用一个库来完成各种任务,那么我们必须得对这个库内各个模块的结构比较熟悉才可以,观察Scikit-learn源代码中的第一级模块,我们不难画出这样的一个树状图用来描述其结构:

        在这其中,datasets为内置数据集,剩下的2-13基本包含了整个机器学习中所有比较经典的算法,后边七个模块是我们在进行机器学习任务时常用的工具。

        后续,我将分别为大家介绍这20个模块的基本用法,本文我们着重来了解datasets这个模块的基本用法。

datasets

        datasets是sklearn中用来加载预置数据集的模块,其内部主要有以下数据集:

所有数据集

数据集名称​​导入方式​​样本数×特征数​​描述​
​​load_iris​​from sklearn.datasets import load_iris150×4鸢尾花数据集,包含3类鸢尾花的4个特征(花萼/花瓣长宽)
​​load_digits​​from sklearn.datasets import load_digits1797×64手写数字(0-9)的8x8像素图像,共10类
​​load_wine​​from sklearn.datasets import load_wine178×13葡萄酒化学分析数据,3类意大利不同品种葡萄酒
​​load_breast_cancer​​from sklearn.datasets import load_breast_cancer569×30乳腺癌诊断数据,2类(恶性/良性),特征为细胞核的30项测量值
​​load_diabetes​​from sklearn.datasets import load_diabetes442×10糖尿病进展指标,10个生理特征(年龄、BMI等),目标为定量病情进展
​​fetch_california_housing​​from sklearn.datasets import fetch_california_housing20640×8加州房价数据,包含收入、房龄等特征,目标为房屋中位数价格(回归问题)
​​fetch_olivetti_faces​​from sklearn.datasets import fetch_olivetti_faces400×409640人的人脸图像(每人10张),64x64像素,用于人脸识别
​​fetch_20newsgroups​​from sklearn.datasets import fetch_20newsgroups文本数据(约18k篇)20个新闻组的文本分类数据,需文本向量化处理
​​make_classification​​from sklearn.datasets import make_classification可自定义(默认100×20)生成合成分类数据,可控制样本数、特征数、类别数等
​​make_regression​​from sklearn.datasets import make_regression可自定义(默认100×100)生成合成回归数据,可控制噪声、特征重要性等
​​make_blobs​​from sklearn.datasets import make_blobs可自定义(默认100×2)生成各向同性高斯分布的聚类数据,适用于聚类算法测试
​​make_moons​​from sklearn.datasets import make_moons可自定义(默认100×2)生成半月形非线性可分数据,用于测试分类算法
​​make_circles​​from sklearn.datasets import make_circles可自定义(默认100×2)生成同心圆非线性可分数据,用于测试分类算法

示例 

import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
#加载iris数据集
iris=load_iris()
X=iris.data#特征 (150, 4)
y=iris.target#三种花的类别(0,1,2)
feature_names=iris.feature_names
target_names=iris.target_names
#绘制花萼长度与宽度,其为data下的第0与第1特征
#y==0,y==1,y==2分别表示三中不同类别的花
plt.figure(figsize=(8, 6))
plt.scatter(X[y==0,0], X[y==0,1], color='red', label=target_names[0])
plt.scatter(X[y==1,0], X[y==1,1], color='blue',label=target_names[1])
plt.scatter(X[y==2,0], X[y==2,1], color='green',label=target_names[2])
plt.xlabel(feature_names[0]) #花萼长度
plt.ylabel(feature_names[1]) # 花萼宽度
plt.title("鸢尾花数据集:花萼长度VS花萼宽度")
plt.legend()
plt.show()

结果

数据集加载方法 

        sklearn所有的load_数据集名称函数的返回值为一个字典(不指定return_Xy=True时),这个字典内部包含的所有属性为:

['data', 'target', 'frame', 'target_names', 'DESCR', 'feature_names', 'filename', 'data_module']

          以load_iris()函数的返回值为例, 其中data是大小为指定形状的ndarray类型数据,feature_names是data中的所有特征名称构成的列表,feature_names的长度即为data.shape[1]的值也就是data对应的列数,target数据集的目标变量(监督学习中的标签或输出值,在iris数据集中为三种类型的花的名称) 也是ndarray的类型 

​​键(Key)​​​​数据类型​​​​含义​​
datanumpy.ndarray (150×4)特征数据矩阵,每行代表一个样本,每列代表一个特征(花萼/花瓣的长度和宽度)。
targetnumpy.ndarray (150,)目标标签(类别),整数编码:
0=setosa, 1=versicolor, 2=virginica。
framepandas.DataFrame包含 data 和 target 的DataFrame(需 as_frame=True 时返回)。
target_namesnumpy.ndarray (3,)目标类别名称,对应 target 的标签:
['setosa', 'versicolor', 'virginica']
feature_nameslist (4,)特征名称列表:
['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
DESCRstr数据集的完整描述(字符串),包含来源、特征解释等信息。
filenamestr数据文件的路径(通常用于本地存储的数据集)。

我们在使用时可以通过以下几种方式来获取

通过索引获取 

from sklearn.datasets import load_iris
'''iris为包含['data', 'target','target_names', 'feature_names]等健的一个字典'''
iris=load_iris()
data=iris['data']
print(data)

通过属性获取 

from sklearn.datasets import load_iris
'''iris为包含['data', 'target','target_names', 'feature_names]等健的一个字典'''
iris=load_iris()
print(iris.data)

        二者得到的结果是一致的。当然,为了方便我们还可以只返回data与target,需要指定return_Xy=True,此时返回值为tuple类型包含data与target

只获取data与target

        当我们将return_X_y指定为True时,函数返回值为data与target构成的tuple

from sklearn.datasets import load_iris
X,y=load_iris(return_X_y=True)#X为data,y为target
print(X)

        

获取Dataframe格式数据

        当我们将as_frame指定为True时,函数的返回值仍然为字典,要想获取dataframe格式的数据需要通过索引的方式来获取,即'frame'。

from sklearn.datasets import load_iris
import pandas as pd
iris=load_iris(as_frame=True)
df=iris['frame']

总结

        以上便是 Sklearn入门之datasets的基本用法的所有内容,如果本文对你有用,免费的三连来一波,感谢各位大佬支持。后续,我还将继续介绍sklearn中其他模块的使用方法。

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

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

相关文章

优化 Dockerfile 性能之实践(Practice of Optimizing Dockerfile Performance)

优化 Dockerfile 性能之实践 构建 Docker 镜像时,Dockerfile 的性能会显著影响构建过程的效率。经过优化的 Dockerfile 可以缩短构建时间、最小化镜像大小并提高整体容器性能。在本文中,我们将探讨优化 Dockerfile 性能的最佳实践。 尽量减少层数 影响…

出现 ERR_CERT_COMMON_NAME_INVALID | 301 302 重定向的解决方法

目录 前言1. 问题所示2. 原理分析3. 解决方法前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 爬虫神器,无代码爬取,就来:bright.cn 1. 问题所示 执行代码时,出现如下提示: GET https://xxxx/admin-api/system

C语言 —— 指尖跃迁 刻印永恒 - 文件操作

目录 1. 什么是文件 1.1 程序文件 1.2 数据文件 1.3 文件名 2. 二进制文件和文本文件 3. 文件的打开与关闭 3.1 流和标准流 3.2 文件指针 3.3 文件的打开与关闭 fopen fclose 4. 文件的顺序读写 4.1 fgetc和fputc fgetc fputc 4.2 fgets和fputs fgets fputs…

用css给div列表加个序号

用 CSS 的 counter 相关属性来为列表添加序号。以下是具体的代码,我将以 HTML 文件的形式提供,并且会运行展示效果: .as-div {// counter-reset: my-counter; /* 计数器名称是my-counter */// counter-reset: small-apple; /* 计数器名称是s…

Rust : 关于*const () 与type erase

*const () 可以替代泛型,更加灵活。 一、 代码 //use std::mem::transmute; trait Work {fn process(&self); } struct Foo(String);impl Work for Foo {fn process(&self) {println!("process work from Foo : {}", self.0);} } struct Bar(S…

【专题刷题】双指针(二)

📝前言说明: 本专栏主要记录本人的基础算法学习以及LeetCode刷题记录,按专题划分每题主要记录:(1)本人解法 本人屎山代码;(2)优质解法 优质代码;&#xff…

吉尔吉斯斯坦工商会代表团赴齐河德瑞新能源汽车考察

德州齐河,2025年4月15日电 时中美贸易突变之际,乘国家一带一路之风。 展中国新能源之宏图,塑国贸体系之新方向。 今日上午,吉尔吉斯斯坦共和国工商会代表团一行三人受邀抵达济南,开启对德瑞新能源科技有限公司&…

【记录condapack打包环境到超算上顺利运行】

以安装CLRNet为例子 本地Linux系统上的操作步骤。 由于官方的安装包的步骤,执行condapack的时候会报错,所以使用以下步骤进行安装包。 安装其他 Python 依赖包 pip install -r requirements.txt✅ 二、构建并打包项目(核心步骤&#xff…

Windows OpenUtau-v0.1.529-开源歌曲合成软件[提供MIDI编辑、歌词调整、音色修改 等功能,音乐创作者的必备工具]

Windows OpenUtau 链接:https://pan.xunlei.com/s/VONy_Refvo6_813Ig--nu5_rA1?pwdejzc# 引擎(Resampler)和拼接器(Wavtool)是UTAU协议中音频处理的两大组件。前端编辑器通过调用引擎和拼接器,对音频进行…

虚拟卡可以解决订阅 ChatGPT 时无法付款的问题

在全球掀起 AI 热潮的今天,因为工作的需要有些朋友要用ChatGPT,它也成为了不少人日常学习、工作、创作和编程的得力助手。然而,不少用户在尝试订阅 ChatGPT Plus(付费版)时,却遇到了一个令人头疼的问题——…

设计模式之状态模式:优雅管理对象行为变化

引言 状态模式(State Pattern)是一种行为型设计模式,它允许对象在其内部状态改变时改变它的行为,使对象看起来似乎修改了它的类。状态模式将状态转移逻辑和状态相关行为封装在独立的状态类中,完美解决了复杂条件判断问…

【算法】归并排序

算法系列七:归并排序 一、归并排序的递归探寻 1.思路 2.搭建 2.1设计过掉不符情况(在最底层时) 2.2查验能实现基础排序(在最底层往上点时) 2.3跳转结果继续往上回搭 3.实质 4.实现 二、递归的调用栈 1.递归的…

线束线缆从二维设计到虚拟验证全流程解决方案

一、传统设计中的痛点 线缆的开发设计是横跨多专业多学科的庞大工程,通常会划分为几大阶段逐次推进,由于每个阶段的工作任务不同,所以在不同设计阶段使用的工具也完全不同,由此导致整个设计流程中工程师常常要跨平台协作&#xf…

【智驾中的大模型 -1】自动驾驶场景中的大模型

1. 前言 我们知道,大模型现在很火爆,尤其是 deepseek 风靡全球后,大模型毫无疑问成为为中国新质生产力的代表。百度创始人李彦宏也说:“2025 年可能会成为 AI 智能体爆发的元年”。 随着科技的飞速发展,大模型的影响…

个人博客系统后端 - 注册登录功能实现指南

一、功能概述 个人博客系统的注册登录功能包括: 用户注册:新用户可以通过提供用户名、密码、邮箱等信息创建账号用户登录:已注册用户可以通过用户名和密码进行身份验证,获取JWT令牌身份验证:使用JWT令牌访问需要认证…

投行交易与风控系统的消费侧幂等架构设计与实战

1.背景和痛点 1.1 资金操作敏感性场景 核心需求: 交易唯一性:资金类操作必须保证全局唯一执行计算原子性:风控指标计算需具备事务性特征审计追溯:所有操作需保留完整幂等轨迹 1.2 业务损失统计 二、技术挑战与架构设计 2.1 分…

odoo-046 视图显示的 name 数据库中存储的不一样

文章目录 一、问题由来二、排查经过1. 问 deepseek2. 验证3. 新问题 三、 总结四、补充(翻译模型 ir.translation 中 src 和 value 字段详解) 一、问题由来 客户有多个公司,使用多个数据库。他们有时需要同步不同数据库之间的数据的需求。在…

充电宝项目:规则引擎Drools学习

文章目录 规则引擎 Drools1 问题2 规则引擎概述2.1 规则引擎2.2 使用规则引擎的优势2.3 规则引擎应用场景2.4 Drools介绍 3 Drools入门案例3.1 创建springboot项目 引入依赖3.2 添加Drools配置类3.4 创建实体类Order3.5 orderScore.drl3.6 编写测试类 4 Drools基础语法4.1 规则…

HTML、CSS 和 JavaScript 常见用法及使用规范

一、HTML 深度剖析 1. 文档类型声明 HTML 文档开头的 <!DOCTYPE html> 声明告知浏览器当前文档使用的是 HTML5 标准。它是文档的重要元信息&#xff0c;能确保浏览器以标准模式渲染页面&#xff0c;避免怪异模式下的兼容性问题。 2. 元数据标签 <meta> 标签&am…

基于CNN+ViT的蔬果图像分类实验

本文只是做一个简单融合的实验&#xff0c;没有任何新颖&#xff0c;大家看看就行了。 1.数据集 本文所采用的数据集为Fruit-360 果蔬图像数据集&#xff0c;该数据集由 Horea Mureșan 等人整理并发布于 GitHub&#xff08;项目地址&#xff1a;Horea94/Fruit-Images-Datase…