熱力圖

缺失值

缺失值視覺化



                def isnal_heatmap(d):
                    plt.figure(figsize=(18,10))
                    sns.heatmap(d.isnull(), cbar=False, yticklabels=False, cmap='viridis')
                    plt.title("Missing Data Heatmap")
                    plt.show()
                    
                isnal_heatmap(df)
            
na_heatmap
Corr

相關性視覺化



                def draw_corr_heatmap(d):
                    plt.figure(figsize=(16, 12))
                    sns.heatmap(d.corr(), annot=True, fmt=".2f", cmap="coolwarm", linewidths=0.1)
                    plt.title("Correlation Heatmap")
                    plt.show()

                draw_corr_heatmap(df)
            
corr_heatmap

配對圖

數值欄位

資料分佈


查看資料分佈

                # hue: 分組依據(Target)
                # vars: 要視覺化的數值欄位(features)
                # diag_kind: 對角線上的圖形類型
                sns.pairplot(df, hue='Outcome', vars=['Glucose', 'BMI', 'Age', 'BloodPressure'], diag_kind='hist')
                plt.tight_layout()
                plt.show()
            
pairplot

直方圖

數值欄位

float64 Column視覺化


查看各個數值欄位的資料分佈情況

                def show_numeric_data_histplot(d, target_col):
                    plt.figure(figsize=(15, 12))
                    plt.suptitle('Histograms of Numerical Columns', fontsize=20)
                    p_index = 0
                    ncol_i = [i for i in range(d.shape[1]) if d[d.columns.values[i]].dtype == 'float64']
                    for i in ncol_i:
                        p_index += 1
                        plt.subplot(6, 3, p_index)
                        f = plt.gca()
                        f.set_title(d.columns.values[i])

                        vals = np.size(d.iloc[:, i].unique())
                        if vals >= 100:
                            vals = 100
                        
                        plt.hist(d[d[target_col]==1][d.columns.values[i]], bins=vals, color='green', alpha=0.6)    
                        plt.hist(d[d[target_col]==0][d.columns.values[i]], bins=vals, color='red', alpha=0.6)
                    plt.tight_layout(rect=[0, 0.03, 1, 0.95])
                    plt.show()
            
酒類品質數據集的直方圖 - 是否品質通過:
dataset
病人生化值檢測數據集的直方圖 - 是否為糖尿病:
dataset

盒鬚圖

數值欄位

資料分佈


查看資料分佈與離群值

                sns.boxplot(data=df,x='X_col',y='y_col')
            
boxplot

散佈圖

檢視2特徵關聯
查看2個特徵與目標之間的關聯

                sns.scatterplot(df2,x='LotArea',y='LotFrontage',hue='SalePrice', size="SalePrice")
                plt.xlabel('LotArea')
                plt.ylabel('LotFrontage')
                plt.show()

            
scatterplot

計數圖

唯一值計數
計數特徵unique數量

                plt.figure(figsize=(8, 6))
                sns.countplot(data=df, x='CryoSleep', hue='Transported', palette='viridis')
                plt.title('CryoSleep vs Target')
                plt.xlabel('CryoSleep')
                plt.ylabel('Count')
                plt.legend(title='Transported')
                plt.show()
            
countplot