【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.pswp.cn/news/207461.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/207461.shtml
英文地址,請注明出處:http://en.pswp.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…