机器学习的特征工程

2023-11-10

机器学习的特征工程

一、数据集
在这里插入图片描述
Kaggle网址:https://www.kaggle.com/datasets
UCI数据集网址: http://archive.ics.uci.edu/ml/
scikit-learn网址:http://scikit-learn.org/stable/datasets/index.html#datasets

sklearn数据集
1 scikit-learn数据集API介绍
  (1)datasets.load_():加载获取流行数据集
   (2)datasets.fetch_
(data_home=None):获取大规模数据集,需要从网络上下载,函数的第一个参数是data_home,表示数据集下载的目录,默认是 ~/scikit_learn_data/

2.sklearn数据集返回值介绍
load和fetch返回的数据类型datasets.base.Bunch(字典格式):
data:特征数据数组,是 [n_samples * n_features] 的二维 numpy.ndarray 数组
target:标签数组,是 n_samples 的一维 numpy.ndarray 数组
DESCR:数据描述
feature_names:特征名,新闻数据,手写数字、回归数据集没有
target_names:标签名

from sklearn.datasets import load_iris
# 获取鸢尾花数据集
iris = load_iris()
print("鸢尾花数据集的返回值:\n", iris)
# 返回值是一个继承自字典的Bench
print("鸢尾花的特征值:\n", iris["data"])
print("鸢尾花的目标值:\n", iris.target)
print("鸢尾花特征的名字:\n", iris.feature_names)
print("鸢尾花目标值的名字:\n", iris.target_names)
print("鸢尾花的描述:\n", iris.DESCR)

3.数据集的划分
机器学习一般的数据集会划分为两个部分:
训练数据:用于训练,构建模型
测试数据:在模型检验时使用,用于评估模型是否有效

划分比例:
训练集:70% 80% 75%
测试集:30% 20% 30%

数据集划分api
sklearn.model_selection.train_test_split(arrays, *options)
x 数据集的特征值
y 数据集的标签值
test_size 测试集的大小,一般为float
random_state 随机数种子,不同的种子会造成不同的随机采样结果。相同的种子采样结果相同。
return 测试集特征训练集特征值值,训练标签,测试标签(默认随机取)

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split


def datasets_demo():
    """
    对鸢尾花数据集的演示
    :return: None
    """
    # 1、获取鸢尾花数据集
    iris = load_iris()
    print("鸢尾花数据集的返回值:\n", iris)
    # 返回值是一个继承自字典的Bench
    print("鸢尾花的特征值:\n", iris["data"])
    print("鸢尾花的目标值:\n", iris.target)
    print("鸢尾花特征的名字:\n", iris.feature_names)
    print("鸢尾花目标值的名字:\n", iris.target_names)
    print("鸢尾花的描述:\n", iris.DESCR)

    # 2、对鸢尾花数据集进行分割
    # 训练集的特征值x_train 测试集的特征值x_test 训练集的目标值y_train 测试集的目标值y_test
    x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, random_state=22)
    print("x_train:\n", x_train.shape)
    # 随机数种子
    x_train1, x_test1, y_train1, y_test1 = train_test_split(iris.data, iris.target, random_state=6)
    x_train2, x_test2, y_train2, y_test2 = train_test_split(iris.data, iris.target, random_state=6)
    print("如果随机数种子不一致:\n", x_train == x_train1)
    print("如果随机数种子一致:\n", x_train1 == x_train2)

    return None

二、特征工程
1.介绍
  特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程,会直接影响机器学习的效果。
  特征工程包含内容:特征抽取、特征预处理、特征降维。

2.特征抽取(特征值化是为了计算机更好的去理解数据)
1 将任意数据(如文本或图像)转换为可用于机器学习的数字特征
2 特征提取API:sklearn.feature_extraction
3 字典特征提取

sklearn.feature_extraction.DictVectorizer(sparse=True,)
DictVectorizer.fit_transform(X) X:字典或者包含字典的迭代器返回值:返回sparse矩阵
DictVectorizer.inverse_transform(X) X:array数组或者sparse矩阵 返回值:转换之前数据格式
DictVectorizer.get_feature_names() 返回类别名称

代码:

def dict_demo():
    """
    字典特征抽取
    :return:
    """
    data = [{'city': '北京', 'temperature': 100}, {'city': '上海', 'temperature': 60},
            {'city': '深圳', 'temperature': 30}]
    # 1、实例化一个转换器类
    transfer = DictVectorizer(sparse=True)

    # 2、调用fit_transform()
    data_new = transfer.fit_transform(data)
    print("data_new:\n", data_new.toarray(), type(data_new))
    print("特征名字:\n", transfer.get_feature_names_out())

    return None

sparse=True
在这里插入图片描述

sparse=False
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习的特征工程 的相关文章

随机推荐

  • 用java写一个简单的考勤管理系统

    我可以为您提供一个参考 您可以使用Java语言来编写一个简单的考勤管理系统 具体的步骤如下 1 定义考勤类 它包括考勤日期 考勤时间以及考勤状态 2 定义考勤管理类 实现考勤的添加 删除 查看等操作 3 定义用户类 它包括用户的姓名 职位
  • GO语言网络编程(并发编程)并发介绍,Goroutine

    GO语言网络编程 并发编程 并发介绍 Goroutine 1 并发介绍 进程和线程 A 进程是程序在操作系统中的一次执行过程 系统进行资源分配和调度的一个独立单位 B 线程是进程的一个执行实体 是CPU调度和分派的基本单位 它是比进程更小的
  • 深入源码分析Spring boot 集成Pagehelper

    引入依赖
  • Unity 代码实现多个Image帧动画播放

    using UnityEngine using System Collections using System Collections Generic using UnityEngine UI using System RequireCom
  • 小米9008刷机授权补丁_学会手机刷机这几种方法,这些问题都可以迎刃而解

    智能手机bug很多 尤其是安卓系统的手机 不仅玩游戏卡 运行慢 有时候手机无法正常开机 或者是无法开机 一些功能不能使用 有的是手机系统造成的 只要通过给手机刷机 这些问题都可以迎刃而解 很多人刷机一般都是去手机维修店 但是你看完这篇文章
  • golang中strings.split的使用,分割

    package main import fmt strings func main fmt Printf q n strings Split a b b fmt Printf q n strings Split a boy a girl a
  • 图技术在 LLM 下的应用:知识图谱驱动的大语言模型 Llama Index

    LLM 如火如荼地发展了大半年 各类大模型和相关框架也逐步成型 可被大家应用到业务实际中 在这个过程中 我们可能会遇到一类问题是 现有的哪些数据 如何更好地与 LLM 对接上 像是大家都在用的知识图谱 现在的图谱该如何借助大模型 发挥更大的
  • Jenkins构建(8):Jenkins 执行远程shell :Send files or execute commands over SSH

    Jenkins 执行远程shell Send files or execute commands over SSH 一 远程执行shell命令 python脚本 1 环境配置 管理Jenkins gt Configure System 模块
  • idea 国内插件库_IDEA 超实用使用技巧分享(长篇)

    前言 工欲善其事 必先利其器 最近受部门的邀请 给入职新人统一培训IDEA 发现有很多新人虽然日常开发使用的是IDEA 但是还是很多好用的技巧没有用到 只是用到一些基本的功能 蛮浪费IDEA这个优秀的IDE 同时 在这次分享之后 本人自己也
  • 排序算法——基数排序(C语言)

    基数排序的概念 什么是基数排序 基数排序是一种和快排 归并 希尔等等不一样的排序 它不需要比较和移动就可以完成整型的排序 它是时间复杂度是O K N 空间复杂度是O K M 基数排序的思想 基数排序是一种借助多关键字的思想对单逻辑关键字进行
  • python爬虫从零开始_python爬虫---从零开始(一)初识爬虫

    我们开始来谈谈python的爬虫 1 什么是爬虫 网络爬虫是一种按照一定的规则 自动地抓取万维网信息的程序或者脚本 另外一些不常使用的名字还有蚂蚁 自动索引 模拟程序或者蠕虫 互联网犹如一个大蜘蛛网 我们的爬虫就犹如一个蜘蛛 当在互联网遇到
  • 计算机网络mask是什么意思,mask是什么意思

    你知道mask是什么意思吗 可能你在网络上偶尔会看到这样的词 但网络上的新词多到数不清 根本没有时间去仔细去了解 下面就让我们带你一起 来详细了解一下mask是什么意思吧 mask是什么意思 假面具 伪装 遮蔽物 All guests wo
  • ppt拖动就复制_PPT快捷键丨这些快捷键可助你事半功倍

    工欲善其事 必先利其器 如果你常用的快捷键只有Ctrl C Ctrl V 那你要仔细看下这篇文章了 PS 这个键盘是PPT做的哦 后台回复 键盘 获取源文件 快捷键 顾名思义就是快和方便 所以能熟练使用PPT快捷键 会使我们变得更高效 桔子
  • Shiro和Spring Security对比

    一 Shiro简介 1 什么是Shiro Shiro是apache旗下一个开源框架 它将软件系统的安全认证相关的功能抽取出来 实现用户身份 认证 权限授权 加密 会话管理等功能 组成了一个通用的安全认证框架 2 Shiro 的特点 Shir
  • VMware虚拟机连不上网络,最详细排查解决方案

    虚拟机连不上网 ping某个网站时并显示此信息 ping www baidu com Name or service not known 步骤一 排查Windows自身问题 有可能这个问题不是你虚拟机有问题 而是装虚拟机的Windows本身
  • 【数据结构】数组和字符串

    本文是对leetbook 数组和字符串 学习完成后的总结 数组和字符串 数组简介 寻找数组的中心索引 搜索插入位置 合并区间 二维数组简介 旋转矩阵 零矩阵 对角线遍历 字符串简介 最长公共前缀 最长回文子串 翻转字符串里的单词 实现 st
  • 前端开发同步和异步的区别?

    在前端开发中 同步 一般指的是在代码运行的过程中 从上到下逐步运行代码 每一部分代码运行完成之后 下面的代码才能开始运行 异步 指的是当我们需要一些代码在执行的时候不会影响其他代码的执行 也就是在执行代码的同时 可以进行其他的代码的执行 不
  • 转:安装MySQL遇到MySQL Server Instance Configuration Wizard未响应的解决办法

    问题 安装了MySQL之后进入配置界面的时候 总会显示 MySQL Server Instance Configuration Wizard未响应 一直卡死 解决办法 Win7系统中 以管理员的权限登录系统 将C盘的ProgramData中
  • postman接口测试要点及错误总结

    本文主要针对接口测试工具postman出现的常见错误及解决办法进行了总结 请求分类及具体传参介绍 GET请求 GET请求是最常见的请求类型 最常用于向服务器查询信息 必要时 可以将查询字符串参数追加到URL的末尾 以便将信息发送给服务器 P
  • 机器学习的特征工程

    机器学习的特征工程 一 数据集 Kaggle网址 https www kaggle com datasets UCI数据集网址 http archive ics uci edu ml scikit learn网址 http scikit l