Sklearn(機器學習)實戰:鳶尾花數據集處理技巧

1.數據集的使用:

先使用load導入鳶尾花數據:

from sklearn.datasets import load_iris

然后定義一個函數來查看鳶尾花數據集:

數據集的獲取:

iris = load_iris()print('鳶尾花的數據集:\n',iris)

使用iris['DESCR']來查看數據及里面的描述:

print('查看數據集描述:\n',iris['DESCR'])

獲取特征值的名字iris.feature_names

print('查看特征值的名字:\n',iris.feature_names)

查看特征值:iris.data

特征值的形狀:iris.data.shape:特征值是150行4列的數據

print('查看特征值:\n', iris.data,iris.data.shape)

數據集劃分:

先導入對應模塊:

from sklearn.model_selection import train_test_split
  • iris.data
    表示鳶尾花數據集的特征矩陣(即輸入數據),通常是一個二維數組或矩陣,每一行代表一個樣本,每一列代表一個特征(如花萼長度、花萼寬度等)。

  • iris.target
    表示鳶尾花數據集的標簽(即目標值),通常是一個一維數組,每個元素對應一個樣本的類別(如0、1、2分別代表不同品種的鳶尾花)。

  • test_size=0.2
    指定測試集的比例為20%,即訓練集占80%。可以是浮點數(比例)或整數(樣本數)。

  • random_state=22
    隨機種子,用于控制數據分割的隨機性。固定此值可確保每次運行代碼時,劃分結果一致(適用于可復現的實驗)。

輸出變量說明

  • x_train
    訓練集的特征數據,包含80%的原始樣本特征,用于訓練模型。

  • x_test
    測試集的特征數據,包含20%的原始樣本特征,用于評估模型性能。

  • y_train
    訓練集的標簽數據,與?x_train?中的樣本一一對應。

  • y_test
    測試集的標簽數據,與?x_test?中的樣本一一對應。

x_train,x_test,y_train,y_test=train_test_split(iris.data, iris.target, test_size=0.2,random_state=22)print('訓練集的特征值:\n',x_train,x_train.shape)

完整代碼:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_splitdef datasets_demo():"""sklearn數據集的使用:return:"""#獲取數據集iris = load_iris()print('鳶尾花的數據集:\n',iris)print('查看數據集描述:\n',iris['DESCR'])print('查看特征值的名字:\n',iris.feature_names)print('查看特征值:\n', iris.data,iris.data.shape)#數據集劃分x_train,x_test,y_train,y_test=train_test_split(iris.data, iris.target, test_size=0.2,random_state=22)print('訓練集的特征值:\n',x_train,x_train.shape)return Noneif __name__ == '__main__':datasets_demo()

2.字典特征抽取:

導入對應模塊:

from sklearn.feature_extraction import DictVectorizer

先定義一些數據:

 data=[{'city':'北京','temperature':100},{'city':'上海','temperature':50},{'city':'深圳','temperature':60}]

第一步先實例化一個轉換器:

?sparse默認是true 返回的是一個稀疏矩陣,需要將其改為False才能夠得到對應的矩陣,如果默認不寫將出現下列的情況:

transformer = DictVectorizer(sparse=False)

第二步調用fit_transform()并輸出打印:

  data_new=transformer.fit_transform(data)print(data_new)print('特征的名字:\n',transformer.get_feature_names_out())

完整代碼:

from sklearn.feature_extraction import DictVectorizerdef dict_demo():"""字典特征抽取:return:"""data=[{'city':'北京','temperature':100},{'city':'上海','temperature':50},{'city':'深圳','temperature':60}]#1.實例化一個轉換器類# sparse默認是true 返回的是一個稀疏矩陣transformer = DictVectorizer(sparse=False)#2.調用fit_transform()data_new=transformer.fit_transform(data)print(data_new)print('特征的名字:\n',transformer.get_feature_names_out())return Noneif __name__ == '__main__':dict_demo()

3.文本特征抽取:統計樣本出現的次數

導入對應模塊:

from sklearn.feature_extraction.text import CountVectorizer

隨便定義一些單詞:

 data=["life is short ,i like like python","life is too long,i dislike python"]

第一步還是實例化一個轉換器:

transformer = CountVectorizer()

第二步調用:

toarray()是sparse矩陣里的一個方法作用是一樣的

data_new=transformer.fit_transform(data)print(data_new.toarray()) print('特征名字:',transformer.get_feature_names_out())

完整代碼:


from sklearn.feature_extraction.text import CountVectorizerdef count_demo():"""文本特征抽取:統計樣本出現的次數:return:"""data=["life is short ,i like like python","life is too long,i dislike python"]#1.實例化一個轉換器transformer = CountVectorizer()# 2.調用fit_transformdata_new=transformer.fit_transform(data)print(data_new.toarray())  # toarray()是sparse矩陣里的一個方法作用是一樣的print('特征名字:',transformer.get_feature_names_out())if __name__ == '__main__':count_demo()

4.中文文本抽取特征:

導入所需要的庫:

import jieba
from sklearn.feature_extraction.text import CountVectorizer

隨機寫入一些中文:

data=["一種還是一種今天很殘酷,明天更殘酷,后天很美好,但絕對大部分是死在明天晚上,所以每個人不要放棄今天","我們看到的從很遠星系來的光是在幾百萬年之前發出的,這樣當我們看到宇宙時,我們是在看它的過去","如果只用一種方式了解某樣事物,你就不會真正了解它。了解事物真正含義的秘密取決于如何將其與我們所了解的事物相聯系。"]

首先我們應該先定義一個jieba函數:

將這些數據先轉為列表要不然輸出臺會出現生成器不便于觀察,在用字符串拼接起來:

def cut_words(text):"""進行中文分詞:param text::return:"""return "".join(list(jieba.cut(text)))

定義一個空的列表,來對上后面的data進行遍歷并添加到這個空列表中:

data_new=[]for item in data:data_new.append(cut_words(item))

完整代碼:

import jieba
from sklearn.feature_extraction.text import CountVectorizerdef cut_words(text):"""進行中文分詞:param text::return:"""return "".join(list(jieba.cut(text)))def count_words():"""中文文本特征抽取,自動分詞:return:"""#1. 將中文文本進行分詞data=["一種還是一種今天很殘酷,明天更殘酷,后天很美好,但絕對大部分是死在明天晚上,所以每個人不要放棄今天","我們看到的從很遠星系來的光是在幾百萬年之前發出的,這樣當我們看到宇宙時,我們是在看它的過去","如果只用一種方式了解某樣事物,你就不會真正了解它。了解事物真正含義的秘密取決于如何將其與我們所了解的事物相聯系。"]data_new=[]for item in data:data_new.append(cut_words(item))# 1.實例化一個轉換器transformer = CountVectorizer()# 2.調用fit_transformdata_new = transformer.fit_transform(data_new)print(data_new.toarray())  # toarray()是sparse矩陣里的一個方法作用是一樣的print('特征名字:', transformer.get_feature_names_out())return Noneif __name__ == '__main__':count_words()

5.TFIDF文本抽取

導入對應模塊

from sklearn.feature_extraction.text import TfidfVectorizer

完整代碼:

from sklearn.feature_extraction.text import TfidfVectorizerdef Tfidf_words():"""文本特征抽取:return:"""#1. 將中文文本進行分詞data=["一種還是一種今天很殘酷,明天更殘酷,后天很美好,但絕對大部分是死在明天晚上,所以每個人不要放棄今天","我們看到的從很遠星系來的光是在幾百萬年之前發出的,這樣當我們看到宇宙時,我們是在看它的過去","如果只用一種方式了解某樣事物,你就不會真正了解它。了解事物真正含義的秘密取決于如何將其與我們所了解的事物相聯系。"]# 1.實例化一個轉換器transformer = TfidfVectorizer()# 2.調用fit_transformdata_new = transformer.fit_transform(data)print(data_new.toarray())  # toarray()是sparse矩陣里的一個方法作用是一樣的print('特征名字:', transformer.get_feature_names_out())return Noneif __name__ == '__main__':Tfidf_words()

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

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

相關文章

【企業微信】接口報錯:javax.net.ssl.SSLHandshakeException

詳細報錯信息 javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target原因 關于qyapi…

光子芯片驅動的胰腺癌早期檢測:基于光學子空間神經網絡的高效分割方法

光子芯片驅動的胰腺癌早期檢測:基于光學子空間神經網絡的高效分割方法 1 論文核心概念 本文提出了一種基于集成光子芯片的光學子空間神經網絡(Optical Subspace Neural Network, OSNN),用于胰腺癌的早期檢測與圖像分割。其核心思想是利用光子芯片的高并行性、低延遲和低能…

Scikit-learn Python機器學習 - 特征降維 壓縮數據 - 特征提取 - 主成分分析 (PCA)

鋒哥原創的Scikit-learn Python機器學習視頻教程: 2026版 Scikit-learn Python機器學習 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili 課程介紹 本課程主要講解基于Scikit-learn的Python機器學習知識,包括機器學習概述,特征工程(數據…

【Python】pytorch安裝(使用conda)

# 創建 PyTorch 虛擬環境 conda create -n pytorch_env python3.10# 激活環境 conda activate pytorch_env# 安裝 PyTorch(CPU版本) conda install pytorch torchvision torchaudio cpuonly -c pytorch# 或者安裝 GPU 版本(如果有NVIDIA顯卡&…

ThreeJS骨骼示例

<html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>骨骼動畫混合演示</title><style>body {margin: 0;padding: …

python + Flask模塊學習 1 基礎用法

目錄 Flask 的主要作用 常用擴展 Flask 基本用法 1. 安裝 Flask&#xff08;再安裝個postman用來調試測試API哈 2. 最小化應用示例 3. 運行應用 Flask 是一個輕量級的 Python Web 框架&#xff0c;它簡潔靈活&#xff0c;適合快速開發 Web 應用和 API。它被稱為 "微…

python數據可視化之Matplotlib(8)-Matplotlib樣式系統深度解析:從入門到企業級應用

作者&#xff1a;浪浪山齊天大圣 描述&#xff1a;深入探索Matplotlib樣式系統的核心機制&#xff0c;掌握從基礎樣式到企業級樣式管理的完整解決方案引言 在數據可視化的世界里&#xff0c;一個優秀的圖表不僅要準確傳達數據信息&#xff0c;更要具備專業的視覺效果。Matplotl…

3.HTTP/HTTPS:報文格式、方法、狀態碼、緩存、SSLTLS握手

HTTP/HTTPS&#xff1a;報文格式、方法、狀態碼、緩存、SSL/TLS握手 1. HTTP報文格式 1.1 HTTP請求報文(Request) GET /api/v1/users HTTP/1.1 // 請求行&#xff1a;方法、URI、協議版本 Host: api.example.com // 請求頭 (Headers) User-Agent: Mozil…

【慢教程】Ollama4:ollama命令匯總

??教程說明 Ollama 是一款輕量級本地大模型部署工具&#xff0c;使用廣泛&#xff0c;且容易上手&#xff0c;適合作為AI技術的入門。 &#x1f9e9;教程各部分鏈接&#xff1a; 第一課&#xff1a;ollama運行原理介紹及同類工具對比 ollama運行原理介紹及同類工具對比&am…

JAVA Predicate

簡單來說&#xff0c;當我明確知道此次判斷的邏輯時就可以直接使用if&#xff0c;但是我這次的判斷邏輯可能會隨著某個參數變化的時候使用Predicate比如當我想要判斷某長段文字中是否包含list<String> 中的元素&#xff0c;并且包含的元素個數大于 list<String>最后…

什么是PFC控制器

一句話概括PFC控制器是一種智能芯片&#xff0c;它通過控制電路中的電流波形&#xff0c;使其與電壓波形保持一致&#xff0c;從而減少電力浪費&#xff0c;提高電能的利用效率。PFC控制器IC的核心作用就是控制一顆功率MOSFET的開關&#xff0c;通過特定的電路拓撲&#xff08;…

【P03_AI大模型測試之_定制化 AI 應用程序開發】

git clone https://gitee.com/winner21/aigc-test.git 類似于joycoder的&#xff0c;可以安裝在vscode上的通義靈碼&#xff1a;https://lingma.aliyun.com/ 1、VSCODE上配置通義靈碼 2、創建前后端文件&#xff0c;并引用AI編碼代碼 3、指定文件&#xff0c;利用AI進行代碼優…

人工智能機器學習——決策樹、異常檢測、主成分分析(PCA)

一、決策樹(Decision Tree) 決策樹&#xff1a;一種對實例進行分類的樹形結構&#xff0c;通過多層判斷區分目標所屬類別 本質&#xff1a;通過多層判斷&#xff0c;從訓練數據集中歸納出一組分類規則 優點&#xff1a; 計算量小&#xff0c;運算速度快易于理解&#xff0c;可…

服務器文件同步用哪個工具?介紹一種安全高效的文件同步方案

服務器作為企業核心數據和應用的載體&#xff0c;服務器文件同步已成為IT運維、數據備份、業務協同中不可或缺的一環。然而&#xff0c;面對多樣的場景和嚴苛的需求&#xff0c;選擇一個既高效又安全的服務器文件同步工具并非易事。本文將首先探討服務器文件同步的常見場景、需…

LeetCode 004. 尋找兩個正序數組的中位數 - 二分切分與分治詳解

一、文章標題 LeetCode 004. 尋找兩個正序數組的中位數 - 二分切分與分治詳解 二、文章內容 1. 題目概述 題目描述&#xff1a;給定兩個已按非降序排列的整數數組 nums1、nums2&#xff0c;設它們長度分別為 m 和 n&#xff0c;要求返回這兩個數組合并后有序序列的中位數。…

預閃為什么可以用來防紅眼?

打閃拍照紅眼產生的原因 預閃可以用來防紅眼&#xff0c;是基于人眼的生理特性和紅眼現象的產生原理。在光線較暗時&#xff0c;人眼的瞳孔會放大。當使用閃光燈拍攝時&#xff0c;如果直接進行高強度閃光&#xff0c;由于瞳孔來不及縮小&#xff0c;閃光燈的光線會反射在眼球血…

Python程序使用了Ffmpeg,結束程序后,文件夾中仍然生成音頻、視頻文件

FFmpeg是一套可以用來記錄、轉換數字音頻、視頻&#xff0c;并能將其轉化為流的開源計算機程序。采用LGPL或GPL許可證。它提供了錄制、轉換以及流化音視頻的完整解決方案。它包含了非常先進的音頻/視頻編解碼庫libavcodec&#xff0c;為了保證高可移植性和編解碼質量&#xff0…

模塊與包的導入

077-模塊-06-模塊搜索順序_嗶哩嗶哩_bilibili 080-包-01-包的概念以及建立包的方式_嗶哩嗶哩_bilibili 088-文件操作-01-文件操作套路以及Python中的對應函數和方法_嗶哩嗶哩_bilibili 注&#xff1a; 1.import math和 from math import *區別 2. 模塊&#xff08;Module…

Docker Compose 多種安裝方式 (Alibaba Cloud Linux 3 環境)

Docker Compose 多種安裝方式&#xff0c;適用于不同場景&#xff08;如依賴系統包管理器、使用 Python 工具鏈、集成 Docker 插件等&#xff09;。以下是常見的方案&#xff0c;尤其針對 Alibaba Cloud Linux 3 環境適配&#xff1a; 一、二進制包安裝&#xff08;推薦&#…

Dubbo3序列化安全機制導致的一次生產故障

前言 記錄一次 Dubbo 線上故障排查和原因分析。 線上 Dubbo 消費者啟動有錯誤日志如下&#xff0c;但是不影響服務啟動。 java.lang.TypeNotPresentException: Type org.example.model.ThirdParam not present ... Caused by: java.lang.ClassNotFoundException: org.example.m…