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

机器学习 --- 数据集

机器学习 — 数据集


文章目录

  • 机器学习 --- 数据集
  • 一,sklearn数据集介绍
  • 二,sklearn现实世界数据集介绍
  • 三,sklearn加载数据集
    • 3.1 加载鸢尾花数据集
    • 3.2 加载糖尿病数据集
    • 3.3 加载葡萄酒数据集
  • 四,sklearn获取现实世界数据集
  • 五,本地csv数据
  • 六,数据集的划分
    • 6.1复习不定长参数
    • 6.2 数据集划分示例
      • 6.2.1列表数据集划分
      • 6.2.2 dataframe数据集划分
      • 6.2.3 字典数据集划分
      • 6.2.4 鸢尾花数据集划分
      • 6.2.5 现实世界数据集划分


一,sklearn数据集介绍

数据量小,数据在sklearn库的本地,只要安装了sklearn,不用上网就可以获取
在这里插入图片描述

二,sklearn现实世界数据集介绍

数据量大,数据只能通过网络获取
在这里插入图片描述

三,sklearn加载数据集

3.1 加载鸢尾花数据集

  • 鸢尾花数据
from sklearn.datasets import load_iris
iris = load_iris()#加载鸢尾花数据集
# print(iris)
data=iris.data#鸢尾花的特征数据集(x,data,特征)
print(data[:5])
print(type(data))
print(data.shape)
print(data.dtype)
print(iris.feature_names)#特征的名字
target=iris.target#鸢尾花的标签数据集(y,target,标签,labels,目标)
print(target)
print(type(target))
print(target.shape)
print(iris.target_names)#标签名称: 'setosa-山鸢尾' 'versicolor-变色鸢尾' 'virginica-维基利亚鸢尾'print(iris.DESCR)#数据集的描述
print(iris.filename)#数据集的文件名
[[5.1 3.5 1.4 0.2][4.9 3.  1.4 0.2][4.7 3.2 1.3 0.2][4.6 3.1 1.5 0.2][5.  3.6 1.4 0.2]]
<class 'numpy.ndarray'>
(150, 4)
float64
['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 22 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 22 2]
<class 'numpy.ndarray'>
(150,)
['setosa' 'versicolor' 'virginica']
  • 使用panda把特征和目标连接起来
import pandas as pd
import numpy as np
from sklearn.datasets import load_iris
iris = load_iris()
feature = iris.data
target = iris.target
target.shape=(len(target), 1)
data = np.hstack([feature, target])
cols = iris.feature_names
cols.append("target")
data_frame=pd.DataFrame(data,columns=cols)
data_frame

在这里插入图片描述

3.2 加载糖尿病数据集

import pandas as pd
import numpy as np
from sklearn.datasets import load_diabetes
iris = load_diabetes()
feature = iris.data
target = iris.target
target.shape=(len(target), 1)
data = np.hstack([feature, target])
cols = iris.feature_names
cols.append("target")
data_frame=pd.DataFrame(data,columns=cols)
data_frame

在这里插入图片描述

3.3 加载葡萄酒数据集

from sklearn.datasets import load_wine
import pandas as pd
import numpy as np
wine = load_wine()
feature = wine.data
target = wine.target
target = target.reshape(-1, 1)
data = np.hstack([feature, target])
cols = wine.feature_names
cols.append("target")
data_frame=pd.DataFrame(data,columns=cols)
data_frame

在这里插入图片描述

四,sklearn获取现实世界数据集

所有现实世界数据,通过网络才能下载后,默认保存的目录可以使用下面api获取。实际上就是保存到home目录

from sklearn import datasets
datasets.get_data_home()  #查看数据集默认存放的位置
  • 示例:获取20分类新闻数据

(1)使用函数: sklearn.datasets.fetch_20newsgroups(data_home,subset)

# 加载联网下载的数据集
from sklearn.datasets import fetch_20newsgroups
from sklearn import datasets
# path=datasets.get_data_home()#查看数据集默认的下载路径
# print(path)#C:\Users\JYL\scikit_learn_datanews=fetch_20newsgroups(data_home="./src",subset="train")#联网加载新闻数据集
print(len(news.data))
print(news.data[0:4])
print(news.target)
print(news.target_names)

在这里插入图片描述

在这里插入图片描述

五,本地csv数据

  • 创建csv文件
    方式1:打开计事本,写出如下数据,数据之间使用英文下的逗号, 保存文件后把后缀名改为csv

csv文件可以使用excel打开
在这里插入图片描述

  • pandas加载csv
# 加载自己的数据
import pandas as pd
data=pd.read_csv("./src/ss.csv")
data=data.to_numpy()
print(data)
[['小王' 23 '女']['小李' 34 '  男']['小陶' 40 ' 32']]

六,数据集的划分

6.1复习不定长参数

# 不定长参数
# 一个"*""把多个参数传为元组
# 两个"**"把一个参数传为字典
def test(*args, **kwargs):print(args)print(kwargs)test(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, name="zhangsan", age=18, sex="male")
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
{'name': 'zhangsan', 'age': 18, 'sex': 'male'}

6.2 数据集划分示例

6.2.1列表数据集划分

from sklearn.model_selection import train_test_split#数据集的划分
x =[1,2,3,4,5,6,7,8,9,10,11,12]
x_train,x_text=train_test_split(x,test_size=0.8,shuffle=True,random_state=42)
# x_train,x_text=train_test_split(x,test_size=10,shuffle=True,random_state=42)
# x_train,x_text=train_test_split(x,train_size=0.2,shuffle=True,random_state=42)
# print(x_train,x_text)# 两个数据容器按照相同的下标进行索引
x =[1,2,3,4,5,6,7,8,9,10]
y =[10,20,30,40,50,60,70,80,90,100]
x_train,x_text,y_train,y_text=train_test_split(x,y)
print(x_train,x_text,y_train,y_text)  
[5, 2, 4, 9, 8, 1, 10] [6, 7, 3] [50, 20, 40, 90, 80, 10, 100] [60, 70, 30]

6.2.2 dataframe数据集划分

from sklearn.model_selection import train_test_split
import numpy as np
import pandas as pd
data1 = np.arange(1, 16, 1)
data1.shape=(5,3)
data1 = pd.DataFrame(data1, index=[1,2,3,4,5], columns=["one","two","three"])
print(data1)a, b = train_test_split(data1,  test_size=0.4, random_state=22)
print("\n", a)
print("\n", b)
 one  two  three
1    1    2      3
2    4    5      6
3    7    8      9
4   10   11     12
5   13   14     15one  two  three
4   10   11     12
1    1    2      3
5   13   14     15one  two  three
2    4    5      6
3    7    8      9

6.2.3 字典数据集划分

from sklearn.feature_extraction import DictVectorizer# 修改后的字典数据
data = [{'city': '广州', 'age': 28, 'temperature': 25},{'city': '深圳', 'age': 35, 'temperature': 30},{'city': '杭州', 'age': 40, 'temperature': 28},{'city': '南京', 'age': 25, 'temperature': 22},{'city': '广州', 'age': 32, 'temperature': 27}]# 使用DictVectorizer进行特征提取
transfer = DictVectorizer(sparse=True)
data_new = transfer.fit_transform(data)# 打印稀疏矩阵
print("data_new:\n", data_new)# 转换为密集矩阵并打印
x = data_new.toarray()
print(type(x))
print(x)
data_new:(0, 0)	28.0(0, 2)	1.0(0, 5)	25.0(1, 0)	35.0(1, 4)	1.0(1, 5)	30.0(2, 0)	40.0(2, 3)	1.0(2, 5)	28.0(3, 0)	25.0(3, 1)	1.0(3, 5)	22.0(4, 0)	32.0(4, 2)	1.0(4, 5)	27.0
<class 'numpy.ndarray'>
[[28.  0.  1.  0.  0. 25.][35.  0.  0.  0.  1. 30.][40.  0.  0.  1.  0. 28.][25.  1.  0.  0.  0. 22.][32.  0.  1.  0.  0. 27.]]

6.2.4 鸢尾花数据集划分

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
iris = load_iris()
x = iris.data
y = iris.target
#划分
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2,shuffle=True,random_state=42)
print(x_train.shape,y_train.shape)
print(x_test.shape,y_test.shape)
print(y_test)
(120, 4) (120,)
(30, 4) (30,)
[1 0 2 1 1 0 1 2 1 1 2 0 0 0 0 1 2 1 1 2 0 2 0 2 2 2 2 2 0 0]

6.2.5 现实世界数据集划分

from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split
import numpy as np# 加载加利福尼亚住房数据集
housing = fetch_california_housing()# 划分训练集和测试集
list = train_test_split(housing.data, housing.target, test_size=0.2, random_state=22)# 解包返回值
x_train, x_test, y_train, y_test = list# 打印结果
print("训练集特征数量:", len(x_train))
print("测试集特征数量:", len(x_test))
print("训练集目标形状:", y_train.shape)
print("测试集目标形状:", y_test.shape)
训练集特征数量: 16512
测试集特征数量: 4128
训练集目标形状: (16512,)
测试集目标形状: (4128,)

相关文章:

  • 【springcloud学习(dalston.sr1)】项目整体介绍(含源代码)(一)
  • 解锁课程编辑器之独特风姿
  • Java线程池性能优化全解析:从配置到实践
  • 合肥SMT贴片加工核心优势与工艺升级
  • 2025java面试题整理
  • 目标检测任务常用脚本1——将YOLO格式的数据集转换成VOC格式的数据集
  • maven中relativepath标签的含义及使用方法
  • OpenAI Text 模型与 Chat 模型调用实战指南:从基础配置到创意花店命名
  • 24年面试问题总结记录
  • RabbitMQ 核心概念与消息模型深度解析(二)
  • 关于Go语言的开发环境的搭建
  • 时间序列基础【学习记录】
  • ridecore流水线解读
  • 【人工智能】自然语言编程革命:腾讯云CodeBuddy实战5步搭建客户管理系统,效率飙升90%
  • 【Web应用】Vue 项目前端项目文件夹和文件介绍
  • 深入理解 JVM:StackOverFlow、OOM 与 GC overhead limit exceeded 的本质剖析及 Stack 与 Heap 的差异
  • 我的MCP相关配置记录
  • 自学新标日初级上二十一课
  • 高效跨平台文件传输与管理的工具
  • 推荐算法工程化:ZKmall模板商城的B2C 商城的用户分层推荐策略
  • 国台办:实现祖国完全统一是大势所趋、大义所在、民心所向
  • 视频|王弘治:王太后,“先天宫斗圣体”?
  • 周启鸣加盟同济大学,曾任香港浸会大学深圳研究院院长
  • 工人日报评规范隐藏式车门把手:科技美学须将安全置顶
  • 2025年度十大IP!IP SH荣膺文化综合类TOP10
  • 何立峰:中方坚定支持多边主义和自由贸易,支持世界贸易组织在全球经济治理中发挥更大作用