Sklearn入門之datasets的基本用法

?????????Sklearn全稱:Scipy-toolkit? Learn是?一個基于scipy實現的的開源機器學習庫。它提供了大量的算法和工具,用于數據挖掘和數據分析,包括分類、回歸、聚類等多種任務。本文我將帶你了解并入門Sklearn下的datasets在機器學習中的基本用法。

獲取方式

pip install scikit-learn

模塊結構

????????在Python中,要想熟練地使用一個庫來完成各種任務,那么我們必須得對這個庫內各個模塊的結構比較熟悉才可以,觀察Scikit-learn源代碼中的第一級模塊,我們不難畫出這樣的一個樹狀圖用來描述其結構:

? ? ? ? 在這其中,datasets為內置數據集,剩下的2-13基本包含了整個機器學習中所有比較經典的算法,后邊七個模塊是我們在進行機器學習任務時常用的工具。

????????后續,我將分別為大家介紹這20個模塊的基本用法,本文我們著重來了解datasets這個模塊的基本用法。

datasets

????????datasets是sklearn中用來加載預置數據集的模塊,其內部主要有以下數據集:

所有數據集

數據集名稱????導入方式????樣本數×特征數????描述??
??load_iris??from sklearn.datasets import load_iris150×4鳶尾花數據集,包含3類鳶尾花的4個特征(花萼/花瓣長寬)
??load_digits??from sklearn.datasets import load_digits1797×64手寫數字(0-9)的8x8像素圖像,共10類
??load_wine??from sklearn.datasets import load_wine178×13葡萄酒化學分析數據,3類意大利不同品種葡萄酒
??load_breast_cancer??from sklearn.datasets import load_breast_cancer569×30乳腺癌診斷數據,2類(惡性/良性),特征為細胞核的30項測量值
??load_diabetes??from sklearn.datasets import load_diabetes442×10糖尿病進展指標,10個生理特征(年齡、BMI等),目標為定量病情進展
??fetch_california_housing??from sklearn.datasets import fetch_california_housing20640×8加州房價數據,包含收入、房齡等特征,目標為房屋中位數價格(回歸問題)
??fetch_olivetti_faces??from sklearn.datasets import fetch_olivetti_faces400×409640人的人臉圖像(每人10張),64x64像素,用于人臉識別
??fetch_20newsgroups??from sklearn.datasets import fetch_20newsgroups文本數據(約18k篇)20個新聞組的文本分類數據,需文本向量化處理
??make_classification??from sklearn.datasets import make_classification可自定義(默認100×20)生成合成分類數據,可控制樣本數、特征數、類別數等
??make_regression??from sklearn.datasets import make_regression可自定義(默認100×100)生成合成回歸數據,可控制噪聲、特征重要性等
??make_blobs??from sklearn.datasets import make_blobs可自定義(默認100×2)生成各向同性高斯分布的聚類數據,適用于聚類算法測試
??make_moons??from sklearn.datasets import make_moons可自定義(默認100×2)生成半月形非線性可分數據,用于測試分類算法
??make_circles??from sklearn.datasets import make_circles可自定義(默認100×2)生成同心圓非線性可分數據,用于測試分類算法

示例?

import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
#加載iris數據集
iris=load_iris()
X=iris.data#特征 (150, 4)
y=iris.target#三種花的類別(0,1,2)
feature_names=iris.feature_names
target_names=iris.target_names
#繪制花萼長度與寬度,其為data下的第0與第1特征
#y==0,y==1,y==2分別表示三中不同類別的花
plt.figure(figsize=(8, 6))
plt.scatter(X[y==0,0], X[y==0,1], color='red', label=target_names[0])
plt.scatter(X[y==1,0], X[y==1,1], color='blue',label=target_names[1])
plt.scatter(X[y==2,0], X[y==2,1], color='green',label=target_names[2])
plt.xlabel(feature_names[0]) #花萼長度
plt.ylabel(feature_names[1]) # 花萼寬度
plt.title("鳶尾花數據集:花萼長度VS花萼寬度")
plt.legend()
plt.show()

結果

數據集加載方法?

????????sklearn所有的load_數據集名稱函數的返回值為一個字典(不指定return_Xy=True時),這個字典內部包含的所有屬性為:

['data', 'target', 'frame', 'target_names', 'DESCR', 'feature_names', 'filename', 'data_module']

??????????以load_iris()函數的返回值為例,?其中data是大小為指定形狀的ndarray類型數據,feature_names是data中的所有特征名稱構成的列表,feature_names的長度即為data.shape[1]的值也就是data對應的列數,target數據集的目標變量(監督學習中的標簽或輸出值,在iris數據集中為三種類型的花的名稱)?也是ndarray的類型?

??鍵(Key)????數據類型????含義??
datanumpy.ndarray?(150×4)特征數據矩陣,每行代表一個樣本,每列代表一個特征(花萼/花瓣的長度和寬度)。
targetnumpy.ndarray?(150,)目標標簽(類別),整數編碼:
0=setosa,?1=versicolor,?2=virginica。
framepandas.DataFrame包含?data?和?target?的DataFrame(需?as_frame=True?時返回)。
target_namesnumpy.ndarray?(3,)目標類別名稱,對應?target?的標簽:
['setosa', 'versicolor', 'virginica']
feature_nameslist?(4,)特征名稱列表:
['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
DESCRstr數據集的完整描述(字符串),包含來源、特征解釋等信息。
filenamestr數據文件的路徑(通常用于本地存儲的數據集)。

我們在使用時可以通過以下幾種方式來獲取

通過索引獲取?

from sklearn.datasets import load_iris
'''iris為包含['data', 'target','target_names', 'feature_names]等健的一個字典'''
iris=load_iris()
data=iris['data']
print(data)

通過屬性獲取?

from sklearn.datasets import load_iris
'''iris為包含['data', 'target','target_names', 'feature_names]等健的一個字典'''
iris=load_iris()
print(iris.data)

????????二者得到的結果是一致的。當然,為了方便我們還可以只返回data與target,需要指定return_Xy=True,此時返回值為tuple類型包含data與target

只獲取data與target

????????當我們將return_X_y指定為True時,函數返回值為data與target構成的tuple

from sklearn.datasets import load_iris
X,y=load_iris(return_X_y=True)#X為data,y為target
print(X)

????????

獲取Dataframe格式數據

????????當我們將as_frame指定為True時,函數的返回值仍然為字典,要想獲取dataframe格式的數據需要通過索引的方式來獲取,即'frame'。

from sklearn.datasets import load_iris
import pandas as pd
iris=load_iris(as_frame=True)
df=iris['frame']

總結

????????以上便是?Sklearn入門之datasets的基本用法的所有內容,如果本文對你有用,免費的三連來一波,感謝各位大佬支持。后續,我還將繼續介紹sklearn中其他模塊的使用方法。

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

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

相關文章

優化 Dockerfile 性能之實踐(Practice of Optimizing Dockerfile Performance)

優化 Dockerfile 性能之實踐 構建 Docker 鏡像時,Dockerfile 的性能會顯著影響構建過程的效率。經過優化的 Dockerfile 可以縮短構建時間、最小化鏡像大小并提高整體容器性能。在本文中,我們將探討優化 Dockerfile 性能的最佳實踐。 盡量減少層數 影響…

出現 ERR_CERT_COMMON_NAME_INVALID | 301 302 重定向的解決方法

目錄 前言1. 問題所示2. 原理分析3. 解決方法前言 ?? 找工作,來萬碼優才:?? #小程序://萬碼優才/r6rqmzDaXpYkJZF 爬蟲神器,無代碼爬取,就來:bright.cn 1. 問題所示 執行代碼時,出現如下提示: GET https://xxxx/admin-api/system

C語言 —— 指尖躍遷 刻印永恒 - 文件操作

目錄 1. 什么是文件 1.1 程序文件 1.2 數據文件 1.3 文件名 2. 二進制文件和文本文件 3. 文件的打開與關閉 3.1 流和標準流 3.2 文件指針 3.3 文件的打開與關閉 fopen fclose 4. 文件的順序讀寫 4.1 fgetc和fputc fgetc fputc 4.2 fgets和fputs fgets fputs…

用css給div列表加個序號

用 CSS 的 counter 相關屬性來為列表添加序號。以下是具體的代碼,我將以 HTML 文件的形式提供,并且會運行展示效果: .as-div {// counter-reset: my-counter; /* 計數器名稱是my-counter */// counter-reset: small-apple; /* 計數器名稱是s…

Rust : 關于*const () 與type erase

*const () 可以替代泛型,更加靈活。 一、 代碼 //use std::mem::transmute; trait Work {fn process(&self); } struct Foo(String);impl Work for Foo {fn process(&self) {println!("process work from Foo : {}", self.0);} } struct Bar(S…

【專題刷題】雙指針(二)

📝前言說明: 本專欄主要記錄本人的基礎算法學習以及LeetCode刷題記錄,按專題劃分每題主要記錄:(1)本人解法 本人屎山代碼;(2)優質解法 優質代碼;&#xff…

吉爾吉斯斯坦工商會代表團赴齊河德瑞新能源汽車考察

德州齊河,2025年4月15日電 時中美貿易突變之際,乘國家一帶一路之風。 展中國新能源之宏圖,塑國貿體系之新方向。 今日上午,吉爾吉斯斯坦共和國工商會代表團一行三人受邀抵達濟南,開啟對德瑞新能源科技有限公司&…

【記錄condapack打包環境到超算上順利運行】

以安裝CLRNet為例子 本地Linux系統上的操作步驟。 由于官方的安裝包的步驟,執行condapack的時候會報錯,所以使用以下步驟進行安裝包。 安裝其他 Python 依賴包 pip install -r requirements.txt? 二、構建并打包項目(核心步驟&#xff…

Windows OpenUtau-v0.1.529-開源歌曲合成軟件[提供MIDI編輯、歌詞調整、音色修改 等功能,音樂創作者的必備工具]

Windows OpenUtau 鏈接:https://pan.xunlei.com/s/VONy_Refvo6_813Ig--nu5_rA1?pwdejzc# 引擎(Resampler)和拼接器(Wavtool)是UTAU協議中音頻處理的兩大組件。前端編輯器通過調用引擎和拼接器,對音頻進行…

虛擬卡可以解決訂閱 ChatGPT 時無法付款的問題

在全球掀起 AI 熱潮的今天,因為工作的需要有些朋友要用ChatGPT,它也成為了不少人日常學習、工作、創作和編程的得力助手。然而,不少用戶在嘗試訂閱 ChatGPT Plus(付費版)時,卻遇到了一個令人頭疼的問題——…

設計模式之狀態模式:優雅管理對象行為變化

引言 狀態模式(State Pattern)是一種行為型設計模式,它允許對象在其內部狀態改變時改變它的行為,使對象看起來似乎修改了它的類。狀態模式將狀態轉移邏輯和狀態相關行為封裝在獨立的狀態類中,完美解決了復雜條件判斷問…

【算法】歸并排序

算法系列七:歸并排序 一、歸并排序的遞歸探尋 1.思路 2.搭建 2.1設計過掉不符情況(在最底層時) 2.2查驗能實現基礎排序(在最底層往上點時) 2.3跳轉結果繼續往上回搭 3.實質 4.實現 二、遞歸的調用棧 1.遞歸的…

線束線纜從二維設計到虛擬驗證全流程解決方案

一、傳統設計中的痛點 線纜的開發設計是橫跨多專業多學科的龐大工程,通常會劃分為幾大階段逐次推進,由于每個階段的工作任務不同,所以在不同設計階段使用的工具也完全不同,由此導致整個設計流程中工程師常常要跨平臺協作&#xf…

【智駕中的大模型 -1】自動駕駛場景中的大模型

1. 前言 我們知道,大模型現在很火爆,尤其是 deepseek 風靡全球后,大模型毫無疑問成為為中國新質生產力的代表。百度創始人李彥宏也說:“2025 年可能會成為 AI 智能體爆發的元年”。 隨著科技的飛速發展,大模型的影響…

個人博客系統后端 - 注冊登錄功能實現指南

一、功能概述 個人博客系統的注冊登錄功能包括: 用戶注冊:新用戶可以通過提供用戶名、密碼、郵箱等信息創建賬號用戶登錄:已注冊用戶可以通過用戶名和密碼進行身份驗證,獲取JWT令牌身份驗證:使用JWT令牌訪問需要認證…

投行交易與風控系統的消費側冪等架構設計與實戰

1.背景和痛點 1.1 資金操作敏感性場景 核心需求: 交易唯一性:資金類操作必須保證全局唯一執行計算原子性:風控指標計算需具備事務性特征審計追溯:所有操作需保留完整冪等軌跡 1.2 業務損失統計 二、技術挑戰與架構設計 2.1 分…

odoo-046 視圖顯示的 name 數據庫中存儲的不一樣

文章目錄 一、問題由來二、排查經過1. 問 deepseek2. 驗證3. 新問題 三、 總結四、補充(翻譯模型 ir.translation 中 src 和 value 字段詳解) 一、問題由來 客戶有多個公司,使用多個數據庫。他們有時需要同步不同數據庫之間的數據的需求。在…

充電寶項目:規則引擎Drools學習

文章目錄 規則引擎 Drools1 問題2 規則引擎概述2.1 規則引擎2.2 使用規則引擎的優勢2.3 規則引擎應用場景2.4 Drools介紹 3 Drools入門案例3.1 創建springboot項目 引入依賴3.2 添加Drools配置類3.4 創建實體類Order3.5 orderScore.drl3.6 編寫測試類 4 Drools基礎語法4.1 規則…

HTML、CSS 和 JavaScript 常見用法及使用規范

一、HTML 深度剖析 1. 文檔類型聲明 HTML 文檔開頭的 <!DOCTYPE html> 聲明告知瀏覽器當前文檔使用的是 HTML5 標準。它是文檔的重要元信息&#xff0c;能確保瀏覽器以標準模式渲染頁面&#xff0c;避免怪異模式下的兼容性問題。 2. 元數據標簽 <meta> 標簽&am…

基于CNN+ViT的蔬果圖像分類實驗

本文只是做一個簡單融合的實驗&#xff0c;沒有任何新穎&#xff0c;大家看看就行了。 1.數據集 本文所采用的數據集為Fruit-360 果蔬圖像數據集&#xff0c;該數據集由 Horea Mure?an 等人整理并發布于 GitHub&#xff08;項目地址&#xff1a;Horea94/Fruit-Images-Datase…