機器學習之數據集

目錄

1、簡介

2、可用數據集

3、scikit-learn數據集API

3.1、小數據集

3.2、大數據集

4、數據集使用


?所屬專欄:人工智能

文中提到的代碼如有需要可以私信我發給你😊

1、簡介

當談論數據集時,通常是指在機器學習和數據分析中使用的一組數據樣本,這些樣本通常代表了某個特定問題領域的實際觀測數據。數據集可以用于開發、訓練和評估機器學習模型,從而使模型能夠從數據中學習并做出預測或分類。

數據集通常由以下幾個組成部分組成:

  1. 特征(Features):也稱為自變量、屬性或輸入變量,是用來描述每個數據樣本的不同方面的數據。特征可以是數值型、類別型、文本型等。在監督學習中,特征被用來訓練模型。
  2. 目標變量(Target Variable):也稱為因變量、標簽或輸出變量,是我們希望模型預測或分類的值。在監督學習中,模型使用特征來預測或分類目標變量。
  3. 樣本(Samples):每個樣本是數據集中的一行,包含特征和目標變量的值。樣本代表了問題領域中的一個觀測點或數據點。
  4. 特征名稱(Feature Names):如果數據集中的特征有名稱,通常會提供一個特征名稱列表,以便更好地理解和解釋特征。
  5. 目標變量的類別(Target Variable Classes):對于分類問題,目標變量可能有多個類別,每個類別表示一個不同的類或標簽。
  6. 數據集描述(Dataset Description):通常包括數據集的來源、數據采集方法、特征和目標變量的含義,以及數據的格式和結構等信息。

數據集可以在各種領域和問題中使用,例如醫療診斷、自然語言處理、計算機視覺、金融預測等。不同類型的數據集可能需要不同的預處理和特征工程步驟,以便為模型提供有意義的數據。

在機器學習中,一個常見的任務是將數據集劃分為訓練集和測試集,用于模型的訓練和評估。這樣可以確保模型在未見過的數據上能夠進行泛化。數據集的質量和適用性對機器學習模型的性能和效果有很大影響,因此選擇合適的數據集和進行有效的特征工程非常重要。

2、可用數據集

Kaggle網址:Find Open Datasets and Machine Learning Projects | Kaggle

UCI數據集網址: UCI Machine Learning Repository

scikit-learn網址:http://scikit-learn.org/stable/datasets/index.html#datasets

Scikit-learn工具介紹:

  • Python語言的機器學習工具
  • Scikit-learn包括許多知名的機器學習算法的實現
  • Scikit-learn文檔完善,容易上手,豐富的API
  • 目前穩定版本0.19.1

安裝:pip3 install Scikit-learn==0.19.1 (安裝scikit-learn需要Numpy, Scipy等庫)

Scikit-learn包含的內容:

scikitlearn接口

  • 分類、聚類、回歸
  • 特征工程
  • 模型選擇、調優

3、scikit-learn數據集API

  • sklearn.datasets 加載獲取流行數據集
  • datasets.load_*() 獲取小規模數據集,數據包含在datasets里
  • datasets.fetch_*(data_home=None) 獲取大規模數據集,需要從網絡上下載,函數的第一個參數是data_home,表示數據集下載的目錄,默認是 ~/scikit_learn_data/

3.1、小數據集

sklearn.datasets.load_iris() 加載并返回鳶尾花數據集

sklearn.datasets.load_boston() 加載并返回波士頓房價數據集

3.2、大數據集

  • sklearn.datasets.fetch_20newsgroups(data_home=None,subset=‘train’)
    • subset:'train'或者'test','all',可選,選擇要加載的數據集。
    • 訓練集的“訓練”,測試集的“測試”,兩者的“全部”

4、數據集使用

這里使用的是鳶尾花數據集

數據集返回值介紹:

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'''
load和fetch返回的數據類型datasets.base.Bunch(字典格式)data:特征數據數組,是 [n_samples * n_features] 的二維 numpy.ndarray 數組target:標簽數組,是 n_samples 的一維 numpy.ndarray 數組DESCR:數據描述feature_names:特征名,新聞數據,手寫數字、回歸數據集沒有target_names:標簽名
'''
def getIris_1():# 獲取鳶尾花數據集iris = load_iris()print("鳶尾花數據集的返回值:\n", iris)# 返回值是一個繼承自字典的Benchprint("鳶尾花的特征值:\n", iris["data"])print("鳶尾花的目標值:\n", iris.target)print("鳶尾花特征的名字:\n", iris.feature_names)print("鳶尾花目標值的名字:\n", iris.target_names)print("鳶尾花的描述:\n", iris.DESCR)if __name__ == '__main__':getIris_1()

數據集劃分:

機器學習一般的數據集會劃分為兩個部分:

  • 訓練數據:用于訓練,構建模型
  • 測試數據:在模型檢驗時使用,用于評估模型是否有效

劃分比例:

  • 訓練集: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.model_selection import train_test_split  # 數據集劃分'''
sklearn.model_selection.train_test_split(arrays, *options)x 數據集的特征值y 數據集的標簽值test_size 測試集的大小,一般為floatrandom_state 隨機數種子,不同的種子會造成不同的隨機采樣結果。相同的種子采樣結果相同。return 測試集特征訓練集特征值值,訓練標簽,測試標簽(默認隨機取)
'''
def datasets_demo():"""對鳶尾花數據集的演示:return: None"""# 1、獲取鳶尾花數據集iris = load_iris()print("鳶尾花數據集的返回值:\n", iris)# 返回值是一個繼承自字典的Benchprint("鳶尾花的特征值:\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_testx_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 Noneif __name__ == '__main__':datasets_demo()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/38444.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/38444.shtml
英文地址,請注明出處:http://en.pswp.cn/news/38444.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ES 概念

es 概念 Elasticsearch是分布式實時搜索、實時分析、實時存儲引擎,簡稱(ES)成立于2012年,是一家來自荷蘭的、開源的大數據搜索、分析服務提供商,為企業提供實時搜索、數據分析服務,支持PB級的大數據。 -- …

logstash 原理(含部署)

1、ES原理 原理 使?filebeat來上傳?志數據,logstash進??志收集與處理,elasticsearch作為?志存儲與搜索引擎,最后使?kibana展現?志的可視化輸出。所以不難發現,?志解析主要還 是logstash做的事情 從上圖中可以看到&#x…

RDMA概述

1. DMA和RDMA概念 1.1 DMA DMA(直接內存訪問)是一種能力,允許在計算機主板上的設備直接把數據發送到內存中去,數據搬運不需要CPU的參與。 傳統內存訪問需要通過CPU進行數據copy來移動數據,通過CPU將內存中的Buffer1移動到Buffer2中。DMA模…

【圖像分類】理論篇 (4)圖像增強opencv實現

隨機旋轉 隨機旋轉是一種圖像增強技術,它通過將圖像以隨機角度進行旋轉來增加數據的多樣性,從而幫助改善模型的魯棒性和泛化能力。這在訓練深度學習模型時尤其有用,可以使模型更好地適應各種角度的輸入。 原圖像: 旋轉后的圖像&…

1.MySQL數據庫的基本操作

數據庫操作過程: 1.用戶在客戶端輸入 SQL 2.客戶端會把 SQL 通過網絡發送給服務器 3.服務器執行這個 SQL,把結果返回給客戶端 4.客戶端收到結果,顯示到界面上 數據庫的操作 這里的數據庫不是代表一個軟件,而是代表一個數據集合。 顯示當前的數據庫 …

Python中的MetaPathFinder

MetaPathFinder 是 Python 導入系統中的一個關鍵組件,它與 sys.meta_path 列表緊密相關。sys.meta_path 是一個包含 MetaPathFinder 實例的列表,這些實例用于自定義模塊的查找和加載邏輯。當使用 import 語句嘗試導入一個模塊時,Python 會遍歷…

Golang通過alibabaCanal訂閱MySQLbinlog

最近在做redis和MySQL的緩存一致性,一個方式是訂閱MySQL的BinLog文件,我們使用阿里巴巴的Canal的中間件來做。 Canal是服務端和客戶端兩部分構成,我們需要先啟動Canal的服務端,然后在Go程序里面連接Canal服務端,即可監…

Maven - 統一構建規范:Maven 插件管理最佳實踐

文章目錄 Available Plugins開源項目中的使用插件介紹maven-jar-pluginmaven-assembly-pluginmaven-shade-pluginShade 插件 - 標簽artifactSetrelocationsfilters 完整配置 Available Plugins https://maven.apache.org/plugins/index.html Maven 是一個開源的軟件構建工具&…

零食量販店熱潮:小縣城的新零售革命

零食量販店熱潮:小縣城的新零售革命 目錄 引言零食量販店的快速崛起零食量販店的運營模式量販零食店在小縣城的影響技術在零食量販店的應用未來展望結論 1. 引言 近年來,零食量販店在我國小縣城迅速發展,成為一種新型的零售模式。在一條街…

flutter 二進制轉字符串

通常接口返回的數據都是二進制數據 二進制轉字符串:utf8二進制轉字符串 onRoomMsg.body是二進制編碼 utf8.decode(onRoomMsg.body)然后字符串轉對象 json.decode(utf8.decode(onRoomMsg.body))然后再用fromJson解析 PrankActivityModel prankActivityModel Prank…

新疆大學841軟件工程考研

1.軟件生產的發展經歷了三個階段,分別是____、程序系統時代和軟件工程時代時代。 2.可行性研究從以下三個方面研究每種解決方法的可行性:經濟可行性、社會可行性和_____。 3.HIPO圖的H圖用于描述軟件的層次關系&…

Android 12.0 系統systemui下拉通知欄的通知布局相關源碼分析

1.前言 在android12.0的系統rom開發中,在進行systemui中的下拉通知欄的布局自定義的時候,對于原生systemui的 系統的下拉通知欄的通知布局的了解也是非常重要的,接下來就來分析下相關的下拉通知欄的通知布局的相關 源碼流程,了解這些才方便對通知欄的布局做修改 2.系統sy…

創建maven的Springboot項目出現錯誤:Cannot access alimaven

創建maven的Springboot項目出現錯誤:Cannot access alimaven 1)問題2) 分析問題3)解決問題 1)問題 創建maven的Springboot項目出現錯誤: Cannot access alimaven (http://maven.aliyun.com/nexus/content/groups/p…

“深入探索JVM內部機制:解密Java虛擬機的工作原理“

標題:深入探索JVM內部機制:解密Java虛擬機的工作原理 摘要:本文將深入探索Java虛擬機(JVM)的內部機制,解密其工作原理。我們將介紹JVM的基本組成部分、類加載過程、內存管理和垃圾回收、即時編譯器等關鍵概…

Linux C++ 網絡編程基礎(2) : TCP多線程一個server對應多個client

目錄 一、linux posix線程相關函數介紹二、tcp server基礎版本三、tpc服務端多線程版本四、tpc客戶端代碼tcp編程時, 一個server可以對應多個client, server端用多線程可以實現. linux下多線程可以使用POSIX的線程函數, 下面給出服務端和客戶端的代碼. 一、linux posix線程相關…

RocketMQ 單機源碼部署 自定義配置文件和端口以及acl權限配置解析

思路 1、我們首先配置完 namesrv和broker和acl認證的配置文件,然后直接使用-c指定配置文件來啟動程序,就會非常明了,用戶名密碼要大于6,第一個用戶我測試著不知道為什么始終有最高權限,大家盡量不要吧第一個用戶給別人…

Redis輔助功能

一、Redis隊列 1.1、訂閱 subscribe ch1 ch2 1.2 publish:發布消息 publish channel message 1.3 unsubscribe: 退訂 channel 1.4 模式匹配 psubscribe ch* 模糊發布&#xff0c;訂閱&#xff0c;退訂&#xff0c; p* <channelName> 1.5 發布訂閱原理 訂閱某個頻道或…

05-基礎入門-系統及數據庫等

基礎入門-系統及數據庫等 一、操作系統層面1、識別操作系統常見方法2、簡要兩者區別及識別意義3、操作系統層面漏洞類型對應意義4、簡要操作系統層面漏洞影響范圍 二、數據庫層面1、識別數據庫類型常見方法2、數據庫類型區別及識別意義3、數據庫常見漏洞類型及攻擊4、簡要數據庫…

word在頁眉頁腳添加第幾頁

如果直接在頁腳添加數字&#xff0c;整個文檔的頁腳會是統一的。 這里我們需要的是每一頁按照頁碼排布的文檔&#xff0c;所以首先打開頁腳設置&#xff1a; 在插入內選擇頁腳 在彈出的下拉窗口中選擇空白即可 在菜單欄會多出“頁眉和頁腳”的選項卡&#xff0c;選擇其中的頁…

【CTFshow】——PWN簽到題

文章目錄 一【題目環境】二【題目類別】三【題目編號】四【題目描述】五【解題思路】六【解題過程】七【提交結果】 一【題目環境】 名稱版本Ubuntu系統22.04.1 LTSLinux內核5.15.0-43-generic 二【題目類別】 此題無特殊類別&#xff0c;為入門題 三【題目編號】 PWN簽到…