国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【機(jī)器學(xué)習(xí)-12】數(shù)據(jù)探索---python主要的探索函數(shù)

這篇具有很好參考價(jià)值的文章主要介紹了【機(jī)器學(xué)習(xí)-12】數(shù)據(jù)探索---python主要的探索函數(shù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在上一篇博客【機(jī)器學(xué)習(xí)】數(shù)據(jù)探索(Data Exploration)—數(shù)據(jù)質(zhì)量和數(shù)據(jù)特征分析中,我們深入探討了數(shù)據(jù)預(yù)處理的重要性,并介紹了諸如插值、數(shù)據(jù)歸一化和主成分分析等關(guān)鍵技術(shù)。這些方法有助于我們清理數(shù)據(jù)中的噪聲、消除異常值,以及降低數(shù)據(jù)的維度,從而為后續(xù)的機(jī)器學(xué)習(xí)模型訓(xùn)練提供更有價(jià)值的信息。

然而,數(shù)據(jù)預(yù)處理只是數(shù)據(jù)探索的一部分。在本篇博客中,我們將進(jìn)一步探討Python中一些主要的探索函數(shù),這些函數(shù)將幫助我們更深入地理解數(shù)據(jù)的分布、特征之間的關(guān)系,以及數(shù)據(jù)中可能存在的模式。而在Python的數(shù)據(jù)探索領(lǐng)域,Pandas和Matplotlib是兩個(gè)不可或缺的庫。Pandas以其強(qiáng)大的數(shù)據(jù)處理和分析能力著稱,而Matplotlib則以其出色的數(shù)據(jù)可視化功能聞名。Pandas中的函數(shù)可以大致分為兩類:統(tǒng)計(jì)特征函數(shù)和統(tǒng)計(jì)作圖函數(shù)。這些作圖函數(shù)常常與Matplotlib緊密結(jié)合,共同呈現(xiàn)數(shù)據(jù)的內(nèi)在規(guī)律和特點(diǎn)。下面,我們將詳細(xì)介紹Pandas中的一些主要統(tǒng)計(jì)特征函數(shù)與統(tǒng)計(jì)作圖函數(shù),并通過實(shí)例來加深理解。這些函數(shù)不僅能夠幫助我們深入了解數(shù)據(jù)的分布情況,還能揭示數(shù)據(jù)之間的潛在關(guān)系,為數(shù)據(jù)分析和機(jī)器學(xué)習(xí)模型的構(gòu)建提供有力的支持。

一、 基本統(tǒng)計(jì)特征函數(shù)

統(tǒng)計(jì)特征函數(shù)用于計(jì)算數(shù)據(jù)的均值、方差、標(biāo)準(zhǔn)差、分位數(shù)、相關(guān)系數(shù)和協(xié)方差等,這些統(tǒng)計(jì)特征能反映出數(shù)據(jù)的整體分布。本小節(jié)所介紹的統(tǒng)計(jì)特征函數(shù)如表3-8所示,它們主要作為Pandas的對(duì)象DataFrame或 Series的方法出現(xiàn)。

P a n d a s 主要統(tǒng)計(jì)特征函數(shù) \bold{Pandas主要統(tǒng)計(jì)特征函數(shù)} Pandas主要統(tǒng)計(jì)特征函數(shù)

方法名 函數(shù)功能 所屬庫
sum() 計(jì)算數(shù)據(jù)樣本的總和(按列計(jì)算) Pandas
mean() 計(jì)算數(shù)據(jù)樣本的算術(shù)平均數(shù) Pandas
var() 計(jì)算數(shù)據(jù)樣本的方差 Pandas
std() 計(jì)算數(shù)據(jù)樣本的標(biāo)準(zhǔn)差 Pandas
corr() 計(jì)算數(shù)據(jù)樣本的Spearman (Pearson)相關(guān)系數(shù)矩陣 Pandas
cov() 計(jì)算數(shù)據(jù)樣本的協(xié)方差矩陣 Pandas
skew() 樣本值的偏度(三階矩) Pandas
kurt() 樣本值的峰度(四階矩) Pandas
describe() 給出樣本的基本描述(基本統(tǒng)計(jì)量如均值、標(biāo)準(zhǔn)差等) Pandas

以下是Pandas庫中一些主要統(tǒng)計(jì)特征函數(shù)的詳細(xì)介紹,包括它們的功能、使用格式以及示例。

1.1 sum()

功能:計(jì)算Series或DataFrame中所有元素的和。
使用格式:

Series.sum()  
DataFrame.sum(axis=0, skipna=None, level=None, numeric_only=None, **kwargs)
  • axis: 默認(rèn)為0,表示按列求和;如果為1,則按行求和。
  • skipna: 排除缺失值(NaN)進(jìn)行計(jì)算,默認(rèn)為True。
  • numeric_only: 僅對(duì)數(shù)值列進(jìn)行操作,默認(rèn)為False。
    示例:
import pandas as pd  
  
# 創(chuàng)建一個(gè)簡單的DataFrame  
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})  
  
# 計(jì)算所有元素的和  
sum_all = df.sum()  
print(sum_all)  # 輸出:A    6, B    15, dtype: int64  
  
# 按行求和  
sum_rows = df.sum(axis=1)  
print(sum_rows)  # 輸出:0    5, 1    7, 2    9, dtype: int64
1.2 mean()

**功能:**計(jì)算Series或DataFrame中所有元素的平均值。

使用格式:

Series.mean(skipna=None, level=None, numeric_only=None, **kwargs)  
DataFrame.mean(axis=0, skipna=None, level=None, numeric_only=None, **kwargs)
  • axis: 默認(rèn)為0,表示按列求平均值;如果為1,則按行求平均值。
  • skipna: 排除缺失值(NaN)進(jìn)行計(jì)算,默認(rèn)為True。
  • numeric_only: 僅對(duì)數(shù)值列進(jìn)行操作,默認(rèn)為False。
    示例:
# 使用前面的DataFrame  
mean_col = df.mean()  
print(mean_col)  # 輸出:A    2.0, B    5.0, dtype: float64  
  
mean_row = df.mean(axis=1)  
print(mean_row)  # 輸出:0    2.5, 1    3.5, 2    4.5, dtype: float64
1.3 var()

**功能:**計(jì)算Series或DataFrame中所有元素的方差。

使用格式:

Series.var(skipna=None, level=None, ddof=1, numeric_only=None, **kwargs)  
DataFrame.var(axis=0, skipna=None, level=None, ddof=1, numeric_only=None, **kwargs)
  • axis: 默認(rèn)為0,表示按列求方差;如果為1,則按行求方差。
  • skipna: 排除缺失值(NaN)進(jìn)行計(jì)算,默認(rèn)為True。
  • ddof: 自由度調(diào)整值,默認(rèn)為1。
  • numeric_only: 僅對(duì)數(shù)值列進(jìn)行操作,默認(rèn)為False。
    示例:
var_col = df.var()  
print(var_col)  # 輸出方差計(jì)算結(jié)果
1.4 std()

**功能:**計(jì)算Series或DataFrame中所有元素的標(biāo)準(zhǔn)差。

使用格式:

Series.std(skipna=None, level=None, ddof=1, numeric_only=None, **kwargs)  
DataFrame.std(axis=0, skipna=None, level=None, ddof=1, numeric_only=None, **kwargs)

參數(shù)與var()函數(shù)相似。

示例:

std_col = df.std()  
print(std_col)  # 輸出標(biāo)準(zhǔn)差計(jì)算結(jié)果
1.5 corr()

**功能:**計(jì)算DataFrame中不同列之間的相關(guān)系數(shù)矩陣。

使用格式:

DataFrame.corr(method='pearson', min_periods=1)
  • method: 計(jì)算相關(guān)系數(shù)的方法,默認(rèn)為’pearson’皮爾遜相關(guān)系數(shù),還可是’kendall’或’spearman’。
  • min_periods: 一對(duì)列至少需要多少個(gè)非NA觀測(cè)值才能計(jì)算相關(guān)系數(shù)。

示例:

corr_matrix = df.corr()  
print(corr_matrix)  # 輸出相關(guān)系數(shù)矩陣
1.6 cov()

**功能:**計(jì)算DataFrame中不同列之間的協(xié)方差矩陣。

使用格式:

DataFrame.cov(min_periods=None)
  • min_periods: 一對(duì)列至少需要多少個(gè)非NA觀測(cè)值才能計(jì)算協(xié)方差。

示例:

cov_matrix = df.cov()  
print(cov_matrix)  # 輸出協(xié)方差矩陣
1.7 skew()

**功能:**計(jì)算Series或DataFrame中所有數(shù)值列的偏度。偏度衡量數(shù)據(jù)分布的不對(duì)稱性。

使用格式:

Series.skew(skipna=True, level=None, numeric_only=None, **kwargs)  
DataFrame.skew(axis=0, skipna=None, level=None, numeric_only=None, **kwargs)
  • axis: 默認(rèn)為0,表示按列計(jì)算偏度;如果為1,則按行計(jì)算偏度。
  • skipna: 排除缺失值(NaN)進(jìn)行計(jì)算,默認(rèn)為True。
  • numeric_only: 僅對(duì)數(shù)值列進(jìn)行操作,默認(rèn)為False。

示例:

skewness = df.skew()  
print(skewness)  # 輸出偏度計(jì)算結(jié)果
1.8 kurt()

**功能:**計(jì)算Series或DataFrame中所有數(shù)值列的峰度。峰度衡量數(shù)據(jù)分布形態(tài)的陡峭程度。

使用格式:

Series.kurt(skipna=True, level=None, numeric_only=None, **kwargs)  
DataFrame.kurt(axis=0, skipna=None, level=None, numeric_only=None, **kwargs)

參數(shù)與skew()函數(shù)相似。

示例:

kurtosis = df.kurt()  
print(kurtosis)  # 輸出峰度計(jì)算結(jié)果
1.9 describe()

**功能:**生成描述性統(tǒng)計(jì)信息,包括計(jì)數(shù)、均值、標(biāo)準(zhǔn)差、最小值、四分位數(shù)(25%、50%、75%)以及最大值。

使用格式:

DataFrame.describe(percentiles=[], include=[], exclude=None)
  • percentiles: 要包含在輸出中的百分位數(shù)。
  • include: 要包含的列的數(shù)據(jù)類型。
  • exclude: 要排除的列的數(shù)據(jù)類型。

示例:

desc_stats = df.describe()  
print(desc_stats)  # 輸出描述性統(tǒng)計(jì)信息

以上就是對(duì)Pandas庫中一些主要統(tǒng)計(jì)特征函數(shù)的詳細(xì)介紹和示例。這些函數(shù)在處理數(shù)據(jù)時(shí)非常有用,能夠幫助我們快速了解數(shù)據(jù)的分布情況,為后續(xù)的數(shù)據(jù)分析和建模提供有力的支持。在使用這些函數(shù)時(shí),可以根據(jù)具體的數(shù)據(jù)和需求選擇合適的參數(shù)和選項(xiàng)。

二、拓展統(tǒng)計(jì)特征函數(shù)

除了上述基本的統(tǒng)計(jì)特征外,Pandas還提供了一些非常方便實(shí)用的計(jì)算統(tǒng)計(jì)特征的函數(shù),主要有累積計(jì)算(cum)和滾動(dòng)計(jì)算(pd.rolling_)。
P a n d a s 累積統(tǒng)計(jì)特征函數(shù) \bold{Pandas累積統(tǒng)計(jì)特征函數(shù)} Pandas累積統(tǒng)計(jì)特征函數(shù)

方法名 函數(shù)功能 所屬庫
cumsum() 依次給出前1、2、…、n個(gè)數(shù)的和) Pandas
cumprod() 依次給出前1、2、…、n個(gè)數(shù)的積 Pandas
cummax() 依次給出前1、2、…、n個(gè)數(shù)的max Pandas
cummin() 依次給出前1、2、…、n個(gè)數(shù)的min Pandas
rolling_sum() 計(jì)算數(shù)據(jù)樣本的總和(按列計(jì)算) Pandas
rolling_mean() 計(jì)算數(shù)據(jù)樣本的算術(shù)平均數(shù) Pandas
rolling_var() 計(jì)算數(shù)據(jù)樣本的方差 Pandas
rolling_std() 計(jì)算數(shù)據(jù)樣本的標(biāo)準(zhǔn)差 Pandas
rolling_corr() 計(jì)算數(shù)據(jù)樣本的Spearman (Pearson)相關(guān)系數(shù)矩陣 Pandas
rolling_cov() 計(jì)算數(shù)據(jù)樣本的協(xié)方差矩陣 Pandas
rolling_skew() 樣本值的偏度(三階矩) Pandas
rolling_kurt() 樣本值的峰度(四階矩) Pandas

其中,cum系列函數(shù)是作為DataFrame或’Series對(duì)象的方法而出現(xiàn)的,因此命令格D.cumsum(),而rolling_系列是pandas 的函數(shù),不是DataFrame或Series對(duì)象的方法,因此,其中,cum系列函數(shù)是作為DataFrame或’Series對(duì)象的方法而出現(xiàn)的,因此命令格式為D.cumsum(),而rolling_系列是pandas 的函數(shù),不是DataFrame或Series對(duì)象的方法

三、統(tǒng)計(jì)作圖函數(shù)

通過統(tǒng)計(jì)作圖函數(shù)繪制的圖表可以直觀地反映出數(shù)據(jù)及統(tǒng)計(jì)量的性質(zhì)及其內(nèi)在規(guī)律,如盒圖可以表示多個(gè)樣本的均值,誤差條形圖能同時(shí)顯示下限誤差和上限誤差,最小二乘擬合曲線圖能分析兩變量間的關(guān)系。

Python的主要作圖庫是Matplotlib,在第2章中已經(jīng)進(jìn)行了初步的介紹,而 Pandas基于Matplotlib并對(duì)某些命令進(jìn)行了簡化,因此作圖通常是Matplotlib和 Pandas相互結(jié)合著使用。本小節(jié)僅對(duì)一些基本的作圖函數(shù)做一下簡介,而真正靈活地使用應(yīng)當(dāng)參考書中所給出的各個(gè)作圖代碼清單。我們要介紹的統(tǒng)計(jì)作圖函數(shù)如表所示。

P y t h o n 主要統(tǒng)計(jì)作圖函數(shù) \bold{Python主要統(tǒng)計(jì)作圖函數(shù)} Python主要統(tǒng)計(jì)作圖函數(shù)

方法名 函數(shù)功能 所屬庫
plot() 繪制線性二維圖,折線圖 Pandas/Matplotlib
pie() 繪制餅狀圖 Pandas/Matplotlib
hist() 繪制二維條形直方圖,可顯示數(shù)據(jù)的分配情形 Pandas/Matplotlib
boxplot() 繪制樣本數(shù)據(jù)的箱形圖 Pandas
plot(logy=True) 繪制y軸的對(duì)數(shù)圖形 Pandas
plot(yerr=True) 繪制誤差條形圖 Pandas

在作圖之前,通常要加載以下代碼。

import matplotlib.pyplot as plt#導(dǎo)入作圖庫
plt.rcParams [ 'font.sans-serif'] =[ 'SimHei']#用來正常顯示中文標(biāo)簽
plt.rcParams [ 'axes.unicode_minus' ] = False #用來正常顯示負(fù)號(hào)
plt.figure(figsize = (7,5))#創(chuàng)建圖像區(qū)域,指定比例

作圖完成后,一般通過plt.show()來顯示作圖結(jié)果。

3.1 plot()

**功能:**繪制線性二維圖、折線圖。
使用格式:
p l t . p l o t ( x , y , S ) plt.plot(x,y, S) plt.plot(x,y,S)

這是Matplotlib通用的繪圖方式,繪制y對(duì)于x (即以x為橫軸的二維圖形),字符串參量S指定繪制時(shí)圖形的類型、樣式和顏色,常用的選項(xiàng)有: 'b’為藍(lán)色、'r’為紅色、'g’為綠色、‘o’為圓圈、’+‘為加號(hào)標(biāo)記、’-‘為實(shí)線、’–'為虛線。當(dāng)x、y均為實(shí)數(shù)同維向量時(shí),則描出點(diǎn)(x(i),y(i)),然后用直線依次相連。
D . p l o t ( k i n d = ′ b o x ′ ) D.plot(kind = 'box') D.plot(kind=box)
這里使用的是 DataFrame x J會(huì)數(shù)指定作圖類型,支持line(線).bar(余形)、barto tL由接數(shù)據(jù)為縱坐標(biāo)自動(dòng)作圖,通過kind參數(shù)指定作圖類型,支持line(線), bar(條形),barh , hist(直方圖)、box(箱線圖)、kde(密度圖)和 area、pie(餅圖)等,同時(shí)也能夠接受plt.plot() 受的參數(shù)。因此,如果數(shù)據(jù)已經(jīng)被加載為Pandas中的對(duì)象,那么以這種方式作圖是比較簡潔的。
**實(shí)例:**在區(qū)間(0≤x≤2T)繪制一條藍(lán)色的正弦虛線,并在每個(gè)坐標(biāo)點(diǎn)標(biāo)上五角星。繪制圖形如圖所示。

import numpy as np
x = np.linspace (0 , 2*np.pi,50)#x坐標(biāo)輸入
y = np.sin (x)#計(jì)算對(duì)應(yīng)x的正弦值
plt.plot(x,y, 'bp--'#控制圖形格式為藍(lán)色帶星虛線,顯示正弦曲線
plt.show ( )

【機(jī)器學(xué)習(xí)-12】數(shù)據(jù)探索---python主要的探索函數(shù),機(jī)器學(xué)習(xí),機(jī)器學(xué)習(xí),python,人工智能,數(shù)據(jù)挖掘

3.2 pie()

**功能:**繪制餅型圖。
使用格式:
p l t . p i e ( s i z e ) plt.pie(size) plt.pie(size)
使用Matplotlib繪制餅圖,其中size是一個(gè)列表,記錄各個(gè)扇形的比例。pie有豐富的參數(shù),詳情請(qǐng)參考下面的實(shí)例。

import matplotlib.pyplot as plt
# The slices will be ordered and plotted counter-clockwise.
labels = 'Frogs ', 'Hogs ', 'Dogs ', 'Logs’#定義標(biāo)簽
sizes =[ 15,30,45,10]#每一塊的比例
colors = [ ' yellowgreen', 'gold', 'lightskyblue ''lightcoral']#每一塊的顏色
explode = (00.1,00) #突出顯示,這里僅僅突出顯示第二塊(即'Hogs ' )
plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.1f%%',shadow=True,    startangle=90)
plt.axis ( 'equal')#顯示為圓(避免比例壓縮為橢圓)
plt.show ( )

【機(jī)器學(xué)習(xí)-12】數(shù)據(jù)探索---python主要的探索函數(shù),機(jī)器學(xué)習(xí),機(jī)器學(xué)習(xí),python,人工智能,數(shù)據(jù)挖掘

3.3 hist()

**功能:**繪制二維條形直方圖,可顯示數(shù)據(jù)的分布情形。
使用格式:

Plt.hist(x, y)
其中,x是待繪制直方圖的一維數(shù)組,y可以是整數(shù),表示均勻分為n組;也可以是列表,列表各個(gè)數(shù)字為分組的邊界點(diǎn)(即手動(dòng)指定分界點(diǎn))。
import matplotlib.pyplot as plt
import numpy as np
x = np.random.randn(1000)
plt.hist(x,10)
plt.show()

【機(jī)器學(xué)習(xí)-12】數(shù)據(jù)探索---python主要的探索函數(shù),機(jī)器學(xué)習(xí),機(jī)器學(xué)習(xí),python,人工智能,數(shù)據(jù)挖掘

3.4 boxplot()

**功能:**繪制樣本數(shù)據(jù)的箱形圖。
使用格式:

D.boxplot() / D.plot(kind = 'box')
有兩種比較簡單的方式繪制D的箱形圖,其中一種是直接調(diào)用DataFrame的 boxplot()方法;另外一種是調(diào)用Series或者DataFrame的 plot()方法,并用kind參數(shù)指定箱形( box)。其中,盒子的上、下四分位數(shù)和中值處有一條線段。箱形末端延伸出去的直線稱為表示盒外數(shù)據(jù)的長度。如果在須外沒有數(shù)據(jù),則在須的底部有一點(diǎn),點(diǎn)的顏色與須的顏色相同。 **實(shí)例:**繪制樣本數(shù)據(jù)的箱形圖,樣本由兩組正態(tài)分布的隨機(jī)數(shù)據(jù)組成。其中,一組數(shù)據(jù)均值為0,標(biāo)準(zhǔn)差為1,另一組數(shù)據(jù)均值為1,標(biāo)準(zhǔn)差為1。繪制結(jié)果如圖所示。
D = pd.DataFrame([x,x+1]).T
D.plot(kind='box')
plt.show()

【機(jī)器學(xué)習(xí)-12】數(shù)據(jù)探索---python主要的探索函數(shù),機(jī)器學(xué)習(xí),機(jī)器學(xué)習(xí),python,人工智能,數(shù)據(jù)挖掘

3.5 plot(logx=True)

plot(logx=True)和plot(yerr=error)在數(shù)據(jù)探索的過程中使用的并不多,這里不做過多的介紹,后續(xù)有時(shí)間將進(jìn)行修訂。

四、案例研究

在這個(gè)案例研究中,我們將使用著名的“泰坦尼克號(hào)”數(shù)據(jù)集,該數(shù)據(jù)集記錄了泰坦尼克號(hào)沉船事故中乘客的詳細(xì)信息,包括他們的生存狀況、年齡、性別、艙位等級(jí)等。我們的目標(biāo)是通過數(shù)據(jù)探索,分析數(shù)據(jù)質(zhì)量并提取關(guān)鍵特征,為后續(xù)的機(jī)器學(xué)習(xí)模型構(gòu)建提供有力支持。

數(shù)據(jù)集介紹:
數(shù)據(jù)集包含以下字段:PassengerId(乘客ID)、Survived(是否生存)、Pclass(艙位等級(jí))、Name(姓名)、Sex(性別)、Age(年齡)、SibSp(兄弟姐妹/配偶數(shù))、Parch(父母/子女?dāng)?shù))、Ticket(船票號(hào))、Fare(票價(jià))、Cabin(船艙號(hào))、Embarked(登船港口)。

數(shù)據(jù)加載與初步查看:
首先,我們使用Pandas庫加載數(shù)據(jù)并查看前幾行以了解數(shù)據(jù)的大致結(jié)構(gòu)。

import pandas as pd  
  
# 加載數(shù)據(jù)  
titanic_data = pd.read_csv('titanic.csv')  
  
# 查看數(shù)據(jù)前5行  
print(titanic_data.head())

數(shù)據(jù)質(zhì)量分析:

接下來,我們進(jìn)行數(shù)據(jù)質(zhì)量分析,重點(diǎn)關(guān)注缺失值。

# 檢查缺失值  
missing_values = titanic_data.isnull().sum()  
print(missing_values)  
  
# 可視化缺失值  
import matplotlib.pyplot as plt  
plt.figure(figsize=(10, 6))  
missing_values.plot(kind='bar')  
plt.title('Missing Values in Titanic Dataset')  
plt.xlabel('Features')  
plt.ylabel('Number of Missing Values')  
plt.show()

通過查看缺失值的數(shù)量和分布情況,我們發(fā)現(xiàn)Age、Cabin和Embarked字段存在缺失值。對(duì)于Age,我們可以考慮使用均值、中位數(shù)或基于其他特征(如性別和艙位等級(jí))的插值來填充。對(duì)于Cabin,由于缺失值太多且可能不包含對(duì)預(yù)測(cè)Survived有用的信息,我們可以考慮刪除這個(gè)特征。對(duì)于Embarked,由于缺失值較少,我們可以考慮使用眾數(shù)填充。

數(shù)據(jù)特征分析:

在進(jìn)行特征分析時(shí),我們關(guān)注特征的統(tǒng)計(jì)描述、分布以及它們與目標(biāo)變量Survived的關(guān)系。

# 描述性統(tǒng)計(jì)  
titanic_data.describe()  
  
# 查看分類特征的分布  
print(titanic_data['Sex'].value_counts())  
print(titanic_data['Pclass'].value_counts())  
print(titanic_data['Embarked'].value_counts(dropna=False))  
  
# 可視化特征與生存的關(guān)系  
titanic_data['Survived'].value_counts().plot(kind='bar', label='Survival')  
plt.title('Survival Counts')  
plt.xlabel('Survived')  
plt.ylabel('Count')  
plt.legend()  
plt.show()  
  
# 以性別為例,查看生存率的差異  
gender_survival = titanic_data.groupby('Sex')['Survived'].mean()  
gender_survival.plot(kind='bar')  
plt.title('Survival Rate by Gender')  
plt.xlabel('Gender')  
plt.ylabel('Survival Rate')  
plt.show()

通過這些分析,我們可以發(fā)現(xiàn)性別和艙位等級(jí)與生存率有顯著的關(guān)系。例如,女性乘客的生存率高于男性,高等級(jí)艙位的乘客生存率也較高。這些信息對(duì)于后續(xù)的模型構(gòu)建和特征選擇非常有價(jià)值。

數(shù)據(jù)清洗與特征工程:

基于上述分析,我們進(jìn)行數(shù)據(jù)清洗和特征工程。

# 填充Age缺失值,使用中位數(shù)填充  
titanic_data['Age'].fillna(titanic_data['Age'].median(), inplace=True)  
  
# 填充Embarked缺失值,使用眾數(shù)填充  
titanic_data['Embarked'].fillna(titanic_data['Embarked'].mode()[0], inplace=True)  
  
# 刪除Cabin特征,因?yàn)槿笔е堤嗲铱赡懿幌嚓P(guān)  
titanic_data.drop('Cabin', axis=1, inplace=True)  
  
# 將分類特征進(jìn)行編碼,例如將Sex編碼為數(shù)值  
titanic_data['Sex'] = titanic_data['Sex'].map({'female': 0, 'male': 1})  
titanic_data['Embarked'] = titanic_data['Embarked'].map({'S': 0, 'C': 1, 'Q': 2})

特征選擇:

在進(jìn)行了初步的數(shù)據(jù)清洗和特征工程后,我們可以進(jìn)一步進(jìn)行特征選擇,以確定哪些特征對(duì)預(yù)測(cè)Survived最為關(guān)鍵。在這個(gè)案例中,我們可以通過計(jì)算特征與目標(biāo)變量之間的相關(guān)性來進(jìn)行特征選擇。

# 計(jì)算特征與生存之間的相關(guān)性  
correlations = titanic_data.corrwith(titanic_data['Survived'])  
  
# 顯示相關(guān)性  
print(correlations)  
  
# 基于相關(guān)性選擇特征  
selected_features = correlations[abs(correlations) > 0.1].index  
titanic_data_selected = titanic_data[selected_features]  
  
print(titanic_data_selected.head())

在這個(gè)例子中,我們選擇了與Survived相關(guān)性絕對(duì)值大于0.1的特征。這樣,我們可以去除那些與目標(biāo)變量關(guān)系不大的特征,減少模型的復(fù)雜度,并提高模型的性能。

數(shù)據(jù)準(zhǔn)備與模型訓(xùn)練:

最后,我們將經(jīng)過清洗、編碼和選擇后的數(shù)據(jù)分為訓(xùn)練集和測(cè)試集,準(zhǔn)備用于機(jī)器學(xué)習(xí)模型的訓(xùn)練。

from sklearn.model_selection import train_test_split  
  
# 分離特征和標(biāo)簽  
X = titanic_data_selected.drop('Survived', axis=1)  
y = titanic_data_selected['Survived']  
  
# 劃分訓(xùn)練集和測(cè)試集  
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)  
  
# 后續(xù)可以使用X_train和y_train來訓(xùn)練機(jī)器學(xué)習(xí)模型,并使用X_test和y_test來評(píng)估模型的性能。

通過本案例研究,我們展示了如何進(jìn)行數(shù)據(jù)質(zhì)量和數(shù)據(jù)特征分析。首先,我們加載了數(shù)據(jù)集并檢查了缺失值的情況,對(duì)缺失值進(jìn)行了合理的填充或刪除。接著,我們對(duì)特征進(jìn)行了描述性統(tǒng)計(jì)和可視化分析,了解了特征的分布以及與目標(biāo)變量的關(guān)系。然后,我們進(jìn)行了特征選擇,去除了與目標(biāo)變量相關(guān)性不強(qiáng)的特征。最后,我們準(zhǔn)備了數(shù)據(jù)用于機(jī)器學(xué)習(xí)模型的訓(xùn)練。這個(gè)過程是機(jī)器學(xué)習(xí)項(xiàng)目中的重要一環(huán),能夠幫助我們更好地理解數(shù)據(jù),并為后續(xù)的模型構(gòu)建提供堅(jiān)實(shí)的基礎(chǔ)。

小結(jié)

本章從應(yīng)用的角度出發(fā),從數(shù)據(jù)質(zhì)量分析和數(shù)據(jù)特征分析兩個(gè)方面對(duì)數(shù)據(jù)進(jìn)行探索分析,最后介紹了Python常用的數(shù)據(jù)探索函數(shù)及用例。數(shù)據(jù)質(zhì)量分析要求我們拿到數(shù)據(jù)后先檢測(cè)是否存在缺失值和異常值;數(shù)據(jù)特征分析要求我們?cè)跀?shù)據(jù)挖掘建模前,通過頻率分布分析、對(duì)比分析、帕累托分析、周期性分析、相關(guān)性分析等方法,對(duì)采集的樣本數(shù)據(jù)的特征規(guī)律進(jìn)行分析,以了解數(shù)據(jù)的規(guī)律和趨勢(shì),為數(shù)據(jù)挖掘的后續(xù)環(huán)節(jié)提供支持。

要特別說明的是,在數(shù)據(jù)可視化中,由于主要使用Pandas作為數(shù)據(jù)探索和分析的工具,因此我們介紹的作圖工具都是Matplotlib和Pandas結(jié)合使用。一方面,Matplotlib是作圖工具的基礎(chǔ),Pandas作圖依賴于它;另一方面,Pandas 作圖有著簡單直接的優(yōu)勢(shì),因此.相互結(jié)合,往往能夠以最高的效率作出符合我們需要的圖。文章來源地址http://www.zghlxwxcb.cn/news/detail-848780.html

到了這里,關(guān)于【機(jī)器學(xué)習(xí)-12】數(shù)據(jù)探索---python主要的探索函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包