当前位置: 首页 > news >正文

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.mrgr.cn/news/98238.html

相关文章:

  • Android Studio 在 Windows 上的完整安装与使用指南
  • 八大定位UI
  • 从宇树摇操avp_teleoperate到unitree_IL_lerobot:如何基于宇树人形进行二次开发(含Open-TeleVision源码解析)
  • 【HD-RK3576-PI】系统更新与恢复
  • CSI-PVController-claimWorker
  • Linux上位机开发实践(OpenCV算法硬件加速)
  • 【redis进阶三】分布式系统之主从复制结构(1)
  • 【复旦微FM33 MCU 底层开发指南】高级定时器ATIM
  • NoSQL入门指南:Redis与MongoDB的Java实战
  • 2025蓝桥杯python A组题解
  • 数据库事务管理:ACID特性与隔离级别的深度解读
  • QScrCpy源码解析(4)获取手机端数据知识补充
  • RVOS-4.实现上下文切换和协作式多任务
  • 大模型到底是怎么产生的?一文了解大模型诞生全过程
  • KTransformers安装笔记 利用docker安装KTransformers
  • 句句翻译。
  • mysql安装-MySQL MGR(Group Replication)+ ProxySQL 架构
  • 【初入职场】文件地狱大逃亡:运维侠Python自动化逆袭之路4整理术(日省3h摸鱼真经)
  • 探秘数据库连接池:HikariCP与Tomcat JDBC
  • 第16届蓝桥杯c++省赛c组个人题解