【Python机器学习系列】一文彻底搞懂机器学习中表格数据的输入形式(理论+源码)

一、问题

    机器学习或者深度学习在处理表格数据(Tabular data)、图像数据(Image data)、文本数据(Text data)、时间序列数据(Time series data)上得到了广泛的应用。

    其中,表格数据是机器学习应用最多的一种数据,在表格数据中,每一行代表一个样本,每一列代表一个特征/标签,每一个特征/标签通常是一个一维列表或者一个一维数组,多个特征/标签通常是多个一维数组。

    假如现在有5个样本,3个特征列,1个标签列,给出的数据如下:

fea1 = np.array([1, 2, 3, 4, 5])

fea2 = np.array([3, 2, 1, 4, 3])

fea3 = np.array([5, 2, 3, 4, 1])

label =  np.array([0, 1, 1, 0, 1])

如何对上面的给的数据进行处理,喂给机器学习模型呢?

二、数组堆叠

将数组进行堆叠,转化为多个长度相同的一维数组转化为二维数组

data_x = np.column_stack((fea1, fea2, fea3))
# data_x = np.array([[1,3,5],[2,2,2],[3,1,3],[4,4,4],[5,3,1]])
data_y = label.reshape((len(label), 1))
# data_y = np.array([[0],[1],[1],[0],[1]])

引申问题1:data_y不做reshape操作可不可以?

答案是可以。标签只有一列,那么可以不转化为二维数组,可以直接划分数据集,喂给模型。

三、转化为dataframe数据框

将多个一维数组转化为dataframe

df = pd.DataFrame({'fea1': fea1, 'fea2': fea2, 'fea3': fea3, 'label': label})
data_x = df[['fea1', 'fea2', 'fea3']].values
# data_x = np.array([[1,3,5],[2,2,2],[3,1,3],[4,4,4],[5,3,1]])
data_y = df[['label']].values
# data_y = np.array([[0],[1],[1],[0],[1]])

引申问题1:data_x和data_y不转化为数组,data_x = df[['fea1', 'fea2', 'fea3']],data_y = df[['label']]行不行?

答案是可以的,此时data_x和data_y的数据类型都是dataframe,而对于表格数据,是可以喂给机器学习dataframe数据类型的。

引申问题2:data_y = df['label'].values或者直接data_y = df['label']这样行不行?

答案是可以。标签只有一列,模型可以接收series或者一维数组。

四、验证

接下来,就可以将上诉方法得到的data_x, data_y进行数据划分,并进行模型训练和推理等后续处理啦

x_train, x_test, y_train, y_test = train_test_split(data_x, data_y, test_size=1/5)
model = LinearRegression()
model.fit(X_train, y_train)
y_pred_test = model.predict(x_test)

五、总结

  • 对于表格数据,机器学习模型理想希望吃到的数据(数据集划分之前)应该是一个二维数组,对于有标签的数据而言,特征和标签各自应该是一个二维数组,二维数组的每个元素对应一个样本的(多个)特征或者(多个)标签。

  • 对于表格数据,机器学习模型也接收dataframe数据类型,对于有标签的数据而言,特征和标签各自应该是一个dataframe数据类型。

  • 对于表格数据,如果特征或者标签只有一列,机器学习模型也可以接收一维数组或series

本人读研期间发表5篇SCI数据挖掘相关论文,现在某研究院从事数据算法相关科研工作,对Python有一定认知和理解,会结合自身科研实践经历不定期分享关于python、机器学习、深度学习等基础知识与应用案例。

致力于只做原创,以最简单的方式理解和学习,关注我一起交流成长。

1、关注文末公众号即可在后台联系我获取相关数据集和源码。

2、关注“数据杂坛”公众号,点击“领资料”即可免费领取资料书籍。

3、有论文指导相关需求,点击“联系我”添加作者微信直接交流。

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

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

相关文章

微信小程序 - 创建 ZIP 压缩包

微信小程序 - 创建 ZIP 压缩包 场景分享代码片段导入 JSZip创建ZIP文件追加写入文件测试方法参考资料 场景 微信小程序只提供了解压ZIP的API,并没有提供创建ZIP的方法。 当我们想把自己处理好的保存,打包ZIP保存下来时就需要自己实现了。 分享代码片段…

无重复字符的最长子串(LeetCode 3)

文章目录 1.问题描述2.难度等级3.热门指数4.解题思路方法一:暴力法方法二:滑动窗口 参考文献 1.问题描述 给定一个字符串 s ,请你找出其中不含有重复字符的最长子串的长度。 s 由英文字母、数字、符号和空格组成。 示例 1: 输…

基于Java商品销售管理系统

基于Java商品销售管理系统 功能需求 1、商品管理:系统需要提供商品信息的管理功能,包括商品的录入、编辑、查询和删除。每个商品应包含基本信息如名称、编码、类别、价格、库存量等。 2、客户管理:系统需要能够记录客户的基本信息&#xf…

算法:常见的哈希表算法

文章目录 两数之和判断是否互为字符重排存在重复元素存在重复元素字母异位词分组 本文总结的是关于哈希表常见的算法 哈希表其实就是一个存储数据的容器,所以其实它本身的算法难度并不高,只是利用哈希表可以对于一些场景进行优化 两数之和 class Solut…

Michael.W基于Foundry精读Openzeppelin第41期——ERC20Capped.sol

Michael.W基于Foundry精读Openzeppelin第41期——ERC20Capped.sol 0. 版本0.1 ERC20Capped.sol 1. 目标合约2. 代码精读2.1 constructor() && cap()2.2 _mint(address account, uint256 amount) 0. 版本 [openzeppelin]:v4.8.3,[forge-std]&…

AI智能降重软件大全,免费最新AI智能降重软件

在当今信息爆炸的时代,内容创作者们面临着巨大的写作压力,如何在保持高质量的前提下提高效率成为摆在许多人面前的难题。AI智能降重软件因其独特的算法和功能逐渐成为提升文案质量的得力助手。本文将专心分享一些优秀的AI智能降重软件。 147SEO改写软件 …

云贝教育 |【技术文章】PostgreSQL中误删除数据怎么办(一)

原文链接:【PostgreSQL】PostgreSQL中误删除数据怎么办(一) - 课程体系 - 云贝教育 (yunbee.net) 在我们学习完PG的MVCC机制之后,对于DML操作,被操作的行其实并未被删除,只能手工vacuum或自动vacuum触发才会…

【分享】我想上手机器学习

目录 前言 一、理解机器学习 1.1 机器学习的目的 1.2 机器学习的模型 1.3 机器学习的数据 二、学习机器学习要学什么 2.1 学习机器学习的核心内容 2.2 怎么选择模型 2.3 怎么获取训练数据 2.4 怎么训练模型 三、机器学习的门槛 3.1 机器学习的第一道门槛 3.2 机器…

最新版IDEA专业版大学生申请免费许可证教学(无需学校教育邮箱+官方途径+非破解手段)

文章目录 前言1. 申请学籍在线验证报告2. 进入IDEA官网进行认证3. 申请 JB (IDEA) 账号4. 打开 IDEA 专业版总结 前言 当你进入本篇文章时, 你应该是已经遇到了 IDEA 社区版无法解决的问题, 或是想进一步体验 IDEA 专业版的强大. 本文是一篇学生申请IDEA免费许可证的教学, 在学…

unity 2d 入门 飞翔小鸟 小鸟碰撞 及死亡(九)

1、给地面,柱体这种添加2d盒装碰撞器,小鸟移动碰到就不会动了 2、修改小鸟的脚本(脚本命名不规范,不要在意) using System.Collections; using System.Collections.Generic; using UnityEngine;public class Fly : Mo…

kafka高吞吐、低延时、高性能的实现原理

作者:源码时代-Raymon老师 Kafka的高吞吐、低延时、高性能的实现原理 Kafka是大数据领域无处不在的消息中间件,目前广泛使用在企业内部的实时数据管道,并帮助企业构建自己的流计算应用程序。Kafka虽然是基于磁盘做的数据存储,但…

可信固件-M (TF-M)

概述: 参考: Trusted Firmware-M Documentation — Trusted Firmware-M v2.0.0 documentation 开源代码托管: trusted-firmware-m.git - Trusted Firmware for M profile Arm CPUs STM32 U5支持TF-M : STM32U5 — Trusted Firmware-M v2.0.0 document…

Meta Platforms推出Imagine:基于Emu的免费AI文本到图像生成器服务

Meta Platform是Facebook、Instagram 和 WhatsApp 的母公司,也是领先的开源AI人工智能大语言模型 Llama 2的创建者。Meta Platforms 推出了一个名为 Imagine 的独立文本到图像 AI 生成器服务。Imagine 是基于 Meta 自己的 AI 模型 Emu 构建的,Emu 是在11…

循环结构中 break、continue、return 和exit() 的区别

循环结构中 break、continue、return 和exit() 的区别 文章目录 循环结构中 break、continue、return 和exit() 的区别一、break语句二、continue语句三、return 语句四、exit() 函数 说明:本文内容参考牟海军 著《C语言进阶: 重点、难点与疑点解析》&a…

HTML程序大全(1):简易计算器

HTML代码&#xff0c;主要创建了几个按钮。 <div class"container"><div class"output" id"output">0</div><button class"button" onclick"clearOutput()" id"clear">C</button>…

C#调用win10系统自带软键盘的方法

上次做了个笔记是关于调用windows系统自带的触摸键盘的方法&#xff1a;C#调用Windows系统自带触摸键盘的方法_c# 虚拟键盘-CSDN博客 除了调用触摸键盘&#xff0c;我们也可以通过调用win10的自带软键盘作为输入途径。 方法很简单。 1、添加using System.Diagnostics引用。 …

选自《洛谷深入浅出进阶篇》——欧拉函数+欧拉定理+扩展欧拉定理

欧拉函数&#xff1a; 欧拉函数定义&#xff1a; 1~n中与n互质的数的个数。 比如 欧拉函数是积性函数&#xff1a;&#xff08;也就是&#xff09;当 n与m互质的时候&#xff1a; 由算术基本定理&#xff0c;我们可以设n&#xff0c;那么我们只要计算出的取值就能求出的取…

5组10个共50个音频可视化效果PR音乐视频制作模板

我们常常看到的图形跟着音乐跳动&#xff0c;非常有节奏感&#xff0c;那这个是怎么做到的呢&#xff1f;5组10个共50个音频可视化效果PR音乐视频制作模板满足你的制作需求。 PR音乐模板|10个音频可视化视频制作模板05 https://prmuban.com/36704.html 10个音频可视化视频制作…

linux下查看文件当下的所有文件的大小和查找大文件

要查询一个文件夹下面所有文件的总大小&#xff0c;您可以使用 du 命令配合一些参数。如果您只关心总大小&#xff0c;而不是各个子文件夹或文件的大小&#xff0c;可以使用以下命令&#xff1a; du -sh /path/to/your/directory在这个命令中&#xff1a; du 是磁盘使用情况的…

设计师福利!免费实用的7款Figma插件,让你的工作事半功倍!

如今&#xff0c;Figma已经成为主流的原型和数字设计软件之一&#xff0c;许多UI设计师和设计团队开始选择使用Figma。随着Figma的快速更新和迭代&#xff0c;Figma插件库变得越来越丰富。如果使用得当&#xff0c;将有助于提高您的设计效率。本文将介绍7个工作中非常实用的Fig…