數據挖掘之認識數據

在數據挖掘過程中,數據的認識是非常重要的一步,它為后續的數據分析、建模、特征選擇等工作奠定基礎。以鳶尾花數據集(Iris Dataset)數據集之鳶尾花數據集(Iris Dataset)-CSDN博客為例,下面將介紹如何從數據下載到可視化展示進行深入認識。

1. 數據下載

鳶尾花數據集是一個經典的機器學習數據集,通常用于分類任務。這個數據集可以從多個來源獲得,包括通過sklearn庫直接加載。

from sklearn.datasets import load_iris# 加載鳶尾花數據集
iris = load_iris()# 查看數據集的基本信息
print(iris.keys())
數據集包含以下幾個重要部分:
  • data: 特征數據,包含150個樣本,每個樣本有4個特征(如花萼長度、花萼寬度、花瓣長度、花瓣寬度)。
  • target: 目標標簽,包含樣本所屬的類別(共三類:Setosa, Versicolor, Virginica)。
  • feature_names: 特征的名稱(例如 'sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)')。
  • target_names: 類別的名稱(例如 'setosa', 'versicolor', 'virginica')。
  • DESCR: 數據集的描述信息。

2. 數據加載與基本信息

使用sklearn加載數據后,可以通過pandas將其轉換為DataFrame,更便于查看和操作。

import pandas as pd# 將數據轉換為pandas DataFrame
iris_df = pd.DataFrame(data=iris.data, columns=iris.feature_names)# 將目標標簽添加到DataFrame中
iris_df['species'] = pd.Categorical.from_codes(iris.target, iris.target_names)# 查看數據集基本信息
print(iris_df.info())# 查看數據集的前幾行
print(iris_df.head())

3. 數據統計描述

我們可以查看數據集的統計描述信息,了解每個特征的分布情況。

# 獲取數據的統計描述
print(iris_df.describe())

4. 數據可視化

數據可視化可以幫助我們理解特征之間的關系,識別數據的模式,并且能夠分辨不同類別樣本在特征空間中的分布情況。

4.1 成對關系圖(Pairplot)

成對關系圖能夠展示所有特征之間的兩兩關系,并且可以通過顏色區分不同類別。

import seaborn as sns# 繪制成對關系圖
sns.pairplot(iris_df, hue='species', palette='Set2')
4.2 箱線圖(Boxplot)

箱線圖能幫助我們觀察每個特征的分布情況,并檢測是否存在異常值。

# 繪制箱線圖
plt.figure(figsize=(10, 6))
sns.boxplot(x='species', y='sepal length (cm)', data=iris_df)
plt.title('Boxplot of Sepal Length by Species')
plt.show()
4.3 熱力圖(Heatmap)

熱力圖可以幫助我們了解特征之間的相關性,并觀察是否存在多重共線性。

import matplotlib.pyplot as plt
import seaborn as sns# 計算特征之間的相關性
correlation = iris_df.iloc[:, :-1].corr()# 繪制熱力圖
plt.figure(figsize=(8, 6))
sns.heatmap(correlation, annot=True, cmap='coolwarm', fmt='.2f')
plt.title('Correlation Heatmap of Iris Dataset')
plt.show()

5. 處理缺失值(如果有)

雖然鳶尾花數據集本身沒有缺失值,但在實際數據中,缺失值的處理是很常見的。我們可以使用pandas來檢查并處理缺失值:

# 檢查缺失值
print(iris_df.isnull().sum())# 假設有缺失值的列,使用均值填充
iris_df.fillna(iris_df.mean(), inplace=True)

7. 2D和3D可視化

2D可視化

import matplotlib.pyplot as plt
import numpy as np
from sklearn.datasets import load_iris# Load the Iris dataset
iris = load_iris()
X = iris.data[:, :2]  # Use the first two features (Sepal Length and Sepal Width)
y = iris.target# Create a 2D scatter plot
fig = plt.figure(figsize=(10, 7))
ax = fig.add_subplot(111)# Map species to colors
colors = ['r', 'g', 'b']
species_names = iris.target_names# Plot each species
for i in range(3):ax.scatter(X[y == i, 0], X[y == i, 1], label=species_names[i], color=colors[i], alpha=0.6)ax.set_xlabel('Sepal Length (cm)')
ax.set_ylabel('Sepal Width (cm)')
ax.set_title('2D Scatter Plot of Iris Dataset')
ax.legend()
plt.show()

3D可視化

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np# Extract features and target
X = iris.data[:, :3]  # Use the first three features for 3D visualization
y = iris.target# Create a 3D scatter plot
fig = plt.figure(figsize=(10, 7))
ax = fig.add_subplot(111, projection='3d')# Map species to colors
colors = ['r', 'g', 'b']
species_names = iris.target_namesfor i in range(3):ax.scatter(X[y == i, 0], X[y == i, 1], X[y == i, 2], label=species_names[i], color=colors[i], alpha=0.6)ax.set_xlabel('Sepal Length (cm)')
ax.set_ylabel('Sepal Width (cm)')
ax.set_zlabel('Petal Length (cm)')
ax.set_title('3D Scatter Plot of Iris Dataset')
ax.legend()
plt.show()

7. 小結

通過加載、查看和可視化鳶尾花數據集,我們可以更好地理解數據的結構、特征分布以及不同類別樣本的區分度。這為后續的數據分析、特征選擇以及機器學習建模提供了重要的基礎。數據挖掘的第一步是對數據的深刻理解,只有了解了數據,才能采取合適的預處理步驟,最終構建有效的模型。

8. 總結

  • 數據下載與加載: 使用sklearn.datasets.load_iris()加載數據,并通過pandas查看數據。
  • 統計描述: 使用describe()查看數據的基本統計信息。
  • 可視化: 使用seaborn繪制成對關系圖、箱線圖和熱力圖,了解數據的分布和特征之間的關系。
  • 缺失值處理: 使用pandas處理缺失值(在實際情況中常見)。

通過這些方法,可以掌握如何處理數據、理解數據以及如何為后續分析做好準備。

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

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

相關文章

Java 優化springboot jar 內存 年輕代和老年代的比例 減少垃圾清理耗時 如調整 -XX:NewRatio

-XX:NewRatio 是 Java Virtual Machine (JVM) 的一個選項,用于調整 年輕代(Young Generation)和 老年代(Old Generation)之間的內存比例。 1. 含義 XX:NewRatioN 用于指定 老年代 與 年輕代 的內存比例。 N 的含義&…

統信UOS 1071 AI客戶端接入本地大模型配置手冊

文章來源:統信UOS 1071本地大模型配置手冊 | 統信軟件-知識分享平臺 1. OS版本確認 1.1. 版本查看 要求:計算機,屬性,查看版本(1070,構建號> 101.100) 2. UOS AI版本確認 UOS AI,設置&am…

定時任務——定時任務技術選型

摘要 本文深入探討了定時任務調度系統的核心問題、技術選型,并對Quartz、Elastic-Job、XXL-Job、Spring Task/ScheduledExecutor、Apache Airflow和Kubernetes CronJob等開源定時任務框架進行了比較分析,包括它們的特點、適用場景和技術棧。文章還討論了…

【ArcGIS Pro微課1000例】0064:柵格目錄、柵格數據集、鑲嵌數據集

一、柵格目錄與柵格數據集 1. 定義 柵格目錄:是一個用于管理和組織柵格數據集的結構,通常包含多個柵格數據集的元數據和索引信息。它相當于一個文件夾,里面可以存放多個柵格文件。可以將工作空間轉柵格目錄。 柵格數據集:是指單個的柵格數據文件,包含了具體的空間數據,…

Java基礎 | 數據庫的命名規范

數據庫的命名規范 1. 基本原則2. 命名規范詳解2.1 命名禁止項2.2 命名規范3. 通用字段規范4. 特殊表命名建議 1. 基本原則 統一性:全庫采用一致的命名規范簡潔性:在表達清晰的前提下盡量簡短規范性:遵循數據庫標準規范可讀性:命名…

麒麟操作系統服務架構保姆級教程(二)sersync、lsync備份和NFS持久化存儲

如果你想擁有你從未擁有過的東西,那么你必須去做你從未做過的事情 上篇文章我們說到rsync雖好,但是缺乏實時性,在實際應用中,咱們可以將rsync寫進腳本,然后寫進定時任務去備份,如果每天凌晨1:00…

青少年編程與數學 02-004 Go語言Web編程 16課題、并發編程

青少年編程與數學 02-004 Go語言Web編程 16課題、并發編程 一、并發編程并發編程的關鍵概念包括: 二、并發與并行并發編程(Concurrency)并行計算(Parallelism)區別 三、Go語言并發編程1. 協程(Goroutine&am…

均值聚類算法

K-均值聚類算法是一種常用的無監督學習算法,用于將數據集劃分為K個簇或聚類。它的基本思想是通過迭代將數據點分配到簇中,使得每個數據點都屬于最近的簇中心,并且使得簇內的數據點之間的距離最小化。 算法步驟如下: 1. 初始化K個…

wtforms+flask_sqlalchemy在flask-admin視圖下實現日期的修改與更新

背景: 在flask-admin 的modelview視圖下實現自定義視圖的表單修改/編輯是件不太那么容易的事情,特別是想不自定義前端view的情況下。 材料: wtformsflask_sqlalchemy 制作: 上代碼 1、模型代碼 from .exts import db from …

【AIGC-ChatGPT進階副業提示詞】末日生存指南 2.0:瘋狂科學家的荒誕智慧

引言 在這個不斷變化的世界中,末日似乎總是lurking在角落。但是,親愛的幸存者們,不要害怕!因為我,瘋狂科學家2099,正在這里為你們帶來最新版本的末日生存指南。這不是你祖母的應急手冊,而是一本…

BiLSTM:深度學習中的雙向長短期記憶網絡

目錄 ?編輯 1. BiLSTM原理 2. BiLSTM的應用案例 3. BiLSTM研究進展 4. BiLSTM技術挑戰 5. BiLSTM未來趨勢 6. BiLSTM的實際應用示例 6.1 數據準備 6.2 構建BiLSTM模型 6.3 訓練模型 6.4 評估模型 6.5 可視化訓練過程 7. 結論 在深度學習的浪潮中,BiLS…

Socket 收發內部拆包封包函數

在socket通信的時候,有時候數據比較大,內部緩存會溢出,導致發送或接收數據不正確。 針對這個情況,封裝了一個接收和發送的底層函數,根據緩存大小批次發送和接收,內部有自己的緩沖區,測試情況良…

RK3588 , mpp硬編碼yuv, 保存MP4視頻文件.

RK3588 , mpp硬編碼yuv, 保存MP4視頻文件. ?? 傳送 ?? Ubuntu x64 架構, 交叉編譯aarch64 FFmpeg mppRK3588, FFmpeg 拉流 RTSP, mpp 硬解碼轉RGBRk3588 FFmpeg 拉流 RTSP, 硬解碼轉RGBRK3588 , mpp硬編碼yuv, 保存MP4視頻文件.

powershell美化

powershell美化 寫在前面 除了安裝命令,其他都是測試命令,后續再寫進配置文件 安裝主題控件 安裝主題oh-my-posh,powershell中執行 winget install JanDeDobbeleer.OhMyPosh -s winget oh-my-posh init pwsh | Invoke-Expression # 查看…

2024/12/22周報

文章目錄 摘要Abstract深度學習文獻閱讀1. 背景與問題2. 發明目的3. 方法與實現3.1 數據采集與變量選取3.2 BP神經網絡建立穩態預測模型3.3 構建多目標優化函數3.4 多目標差分進化算法求解優化3.5 最優決策變量篩選3.6 實時控制 4. 系統實現5. 實際效果與驗證5.1 仿真驗證5.2 神…

前端編程訓練 異步編程篇 請求接口 vue與react中的異步

文章目錄 前言代碼執行順序的幾個關鍵點接口請求vue與react中的異步 vue中的異步react的state修改異步 前言 本文是B站三十的前端課的筆記前端編程訓練,異步編程篇 代碼執行順序的幾個關鍵點 我們可以理解為代碼就是一行一行,一句一句是執行(定義變…

Excel生成DBC腳本源文件

Excel制作 新建一個Excel,后綴為“.xls” 工作本名稱改為“CAN_Matrix” 在首行按照列來起名字,在里面只需要填寫必須的內容即可。 列數名稱第0列Message Name第1列Message Format第2列Message ID第3列Message Length (byte)第4列Message Transmitte…

16.2、網絡安全風險評估技術與攻擊

目錄 網絡安全風險評估技術方法與工具 網絡安全風險評估技術方法與工具 資產信息收集,可以通過調查表的形式把我們各類的資產信息進行一個統計和收集,掌握被評估對象的重要資產分布,進而分析這些資產關聯的業務面臨的安全威脅以及存在的安全…

C++-----函數與庫

數學中的函數與編程中的函數對比 數學中的函數 - 數學函數是一種映射關系,例如,函數\(y f(x)x^{2}\),對于每一個輸入值\(x\),都有唯一確定的輸出值\(y\)。它側重于描述變量之間的數量關系,通常通過公式來表示這種關系…

Loki 微服務模式組件介紹

目錄 一、簡介 二、架構圖 三、組件介紹 Distributor(分發器) Ingester(存儲器) Querier(查詢器) Query Frontend(查詢前端) Index Gateway(索引網關&#xff09…