11.11 机器学习-数据集的获取和划分

devtools/2024/11/16 2:23:25/

# sklearn玩具数据集

# 鸢尾花 数据集使用

from sklearn.datasets import load_iris,load_wine,fetch_20newsgroups # 导入 数据集 load本地 feath联网

from sklearn.model_selection import train_test_split # 数据集划分方法

from sklearn.feature_extraction import DictVectorizer # 字典类型划分方法

import pandas as pd

import numpy as np

def iris():

    # 是几个np数组和list

    # iris字典中有几个重要属性:

    # data 特征

    # feature_names 特征描述

    # target  目标

    # target_names  目标描述

    # DESCR 数据集的描述 一串英文

    # filename 下后到本地保存后的文件名

    # print(iris.data) # 全部数据的值 是一个二维pandas矩阵 也是一个X值

    # print(iris.feature_names) # 每一列的列名

    # print(iris.target) # 每一个矩阵行对应的一个Y值

    # print(iris.target_names) # Y值对应的花的类型

    iris = load_iris()#鸢尾花数据 实例化对象 本地加载了一个csv文件 变为了一个字典

    data1=iris.data[80]

    print(iris.target_names[iris.target[80]])

    # print(iris.DESCR)

    print(iris.data)

    print(iris.target)

    print(type(iris.data))

    print(type(iris.target))

    print(iris.feature_names)

   

    # 组合为 dataframe

    df1=pd.DataFrame(columns=iris.feature_names)

    df1[iris.feature_names]=iris.data

    df1["target"]=iris.target

    print(df1)

def wine():# 葡萄酒特征集

    wine=load_wine()

    print(wine.data)

    print(wine.feature_names)

    print(wine.target)

    print(wine.target_names)

    df1=pd.DataFrame(columns=wine.feature_names)

    df1[wine.feature_names]=wine.data

    df1["target"]=wine.target

    print(df1)

   

def get_real_world_dataset():# 现实世界的数据集获取 下载 使用fetch_20newsgroups()方法下载 这个是获得20条新闻类别的数据集 其他的现实数据 有不同的获取方法

    # data_home 下载的路径 subset 下载数据的种类 test(测试集)train 训练集 all全部

    # 下载可以就可以当本地的用 第一次下载完第二次就可以直接加载了不用下载  这个数据集没有feature_names

    data=fetch_20newsgroups(data_home="assets",subset="all")

    # print(data.feature_names)

def load_local_file(): # 加载本地文件夹 df读csv文件 读Excel文件 文件格式如果没有对应的读取工具请下载

    data=pd.read_csv("assets/ss.csv")

    print(data)

def data_set_divide():# 重点 数据集的划分

    # 导包

    # 首先要有数据 获取 这里直接自定义了

    arr1=[14,3,25,435,6461,43,2,41]

    arr2=[6,4,8,3,4,6,8,9]

    # train_test_split()方法 返回训练集,测试集 传入数组 和划分的大小 多少部分为训练集

    # x_train1,x_test1=train_test_split(arr1,test_size=0.8)

    # 有映射关系的两个数据集进行划分 个数要相同 返回两个四个值 两个训练集和测试集之间有对齐关系下标相同 虽然是打乱了,但打乱的过程都一样

    # stratify=arr2 按照arr2的结构分层取 arr2有三种数据 那就每一种数据取80来 防止验证集和训练集的内容种类重复度过高 返回值的类型跟传入的类型一样

    # random_state随机数种子控制随机结果 随机数种子一样得到的随机结果也一样 假随机 不写的话每次结果不一样 shuffle洗牌

    # x_train2,x_test2,y_train2,y_test2=train_test_split(arr1,arr2,train_size=0.8,stratify=arr2,shuffle=True,random_state=4)

    # 多个数组也可以直接传入  

    # 重要的关键字参数有:

        # test_size 值为0.0到1.0的小数,表示划分后测试集占的比例

        # random_state 值为任意整数,表示随机种子,使用相同的随机种子对相同的数据集多次划分结果是相同的。否则多半不同

    # sklearn.model_selection.train_test_split(*arrays,**options)

    # data=np.arange(100).reshape(50,2)

    # 鸢尾花数据集划分

    iris=load_iris()

    x=iris.data

    y=iris.target

    x_train,x_test,y_train,y_test=train_test_split(x,y,train_size=0.8,stratify=y,random_state=666)

    print(x_train.shape)

    print(y_train.shape) # 传入的是数组的话没有shape 先转为np 再shape

    print(x_test.shape)

    print(y_test.shape)

    # 字典数据集的划分

    # 可以划分非稀疏矩阵

    # 用于将字典列表转换为特征向量。这个转换器主要用于处理类别数据和数值数据的混合型数据集 数值和汉字

    # 对于类别特征`DictVectorizer` 会为每个不同的类别创建一个新的二进制特征,如果原始数据中的某个样本具有该类别,则对应的二进制特征值为1,否则为0。

    data4 = [{'city':'成都', 'age':30, 'temperature':20},

        {'city':'重庆','age':33, 'temperature':60},

        {'city':'北京', 'age':42, 'temperature':80},

        {'city':'上海', 'age':22, 'temperature':70},

        {'city':'成都', 'age':72, 'temperature':40},

       ]

    mode1=DictVectorizer(sparse=False) # sparse是否返回稀疏矩阵(一个二元的坐标) 创建字典划分工具

    data5=mode1.fit_transform(data4) # 使用工具转换字典 他就相当于是把汉字变成列 用0,1表示这列是否为真 数字的列名也变为列但就是具体的数字

    x_train5,y_train5=train_test_split(data5,random_state=666,train_size=0.8)


 

if __name__=="__main__":

    # iris()

    # wine()

    # demo3()

    # demo4()

    data_set_divide()

    pass


http://www.ppmy.cn/devtools/134317.html

相关文章

公开一下我的「个人学习视频」!

哈喽,大家好,我是六哥。 鉴于上次分享,很多同学说,六哥能整一些百度网盘的资源吗? 可以,来安排,看看有你心动的吗? 性能测试系列 测开系列 python方向 Java方向 主管必会系列 质…

MySQL中,使用XtraBackup进行备份锁

在MySQL中,使用XtraBackup进行备份时,备份锁的获取方式在MySQL 5.7和8.0之间有所不同。XtraBackup是一个开源的热备份工具,它支持Percona Server和MariaDB,以及Oracle的MySQL。 MySQL 5.7 在MySQL 5.7中,XtraBackup通…

杰控通过 OPCproxy 获取数据发送到服务器

把数据从 杰控 取出来发到服务器 前提你在杰控中已经有变量了(wincc 也适用) 打开你的opcproxy 软件包 opcvarFile 添加变量 写文件就写到 了 opcproxy.ini中 这个文件里就是会读取到的数据 然后 opcproxy.exe发送到桌面快捷方式再考回来 &#…

React Native 全栈开发实战班 - 数据管理与状态之Zustand应用

在 React Native 应用中,状态管理 是构建复杂用户界面的关键。随着应用规模的增长,组件之间的数据共享和状态同步变得越来越复杂。虽然 React 提供了 Context API 作为内置的状态管理解决方案,但在大型应用中,使用更强大的状态管理…

【HAProxy07】企业级反向代理HAProxy高级功能之Cookie 会话保持与HAProxy 状态页

HAProxy 高级功能 介绍 HAProxy 高级配置及实用案例 基于 Cookie 的会话保持 cookie value:为当前server指定cookie值,实现基于cookie的会话黏性,相对于基于 source 地址 hash 调度算法对客户端的粒度更精准,但同时也加重了hap…

K8S如何基于Istio实现全链路HTTPS

K8S如何基于Istio实现全链路HTTPS Istio 简介Istio 是什么?为什么选择 Istio?Istio 的核心概念Service Mesh(服务网格)Data Plane(数据平面)Sidecar Mode(边车模式)Ambient Mode(环境模式)Control Plane(控制平面)Istio 的架构与组件Envoy ProxyIstiod其他组件Istio 的流量管…

Mysql每日一题(行程与用户,困难※)

今天给大家分享一个截止到目前位置,我遇到最难的一道mysql题目,非常建议大家亲手做一遍 完整代码如下,这道题的主要难点是它有两个外键,以前没遇到过,我也没当回事,分享一下错误经验哈 当时我写的where判断…

【golang-技巧】- 定时器使用-ticker

1.背景 定时实现清理/刷新 缓存定时调度任务… 2.实现 通过 time.NewTicker 实现 func (a *Alerts) Run(ctx context.Context, interval time.Duration) {t : time.NewTicker(interval)defer t.Stop()for {select {case <-ctx.Done():returncase <-t.C:a.gc()}} }3.结…