avataryuwei

总结

本文介绍了Sweetviz工具,强调了在数据分析之前使用它可以快速进行探索性数据分析(EDA)和统计计算,以及比较不同数据集或子数据集的特征。

摘要

文章开头提到随着时间的推移,个人能力和世界都在不断变化,作者每两到三周会发布一篇技术文章,以保持学习状态。接着,文章详细介绍了Sweetviz工具的使用流程,包括回顾在面对未知数据集时的分析步骤,如明确分析目的、Y定义、数据集特征、变量含义和类型,以及进行EDA。作者指出,如果X变量众多,而且需要对每个变量进行准确的判断和准备,将会非常困难。

文章接着介绍了Sweetviz工具,它能够快速完成EDA和统计量计算,同时还可以比较两个数据集或子数据集的特征差异。作者提供了安装Sweetviz的命令,并提醒在使用时注意数据量和变量数量对报告生成时间的影响。文章还包含了一个实际演示,使用了Kaggle上的Titanic数据集,展示了如何生成基本报告、包含目标变量的报告、比较train和test数据集的报告,以及比较男性和女性子数据集的报告。作者强调,通过Sweetviz工具,可以更高效地进行数据分析,从而提高分析的价值。

最后,作者总结了Sweetviz工具的使用,并鼓励读者在工作和个人项目中不断突破,擁抱新事物。同时,作者提供了自己的邮箱,供读者在有问题时联系。

观点

  • 在进行数据分析之前,使用Sweetviz工具可以提高分析效率,尤其是在处理大量变量时。
  • Sweetviz能够自动生成数据集的EDA报告,并且可以比较不同数据集或子数据集的特征,有助于发现数据之间的差异。
  • 数据分析师应该明确分析目的、Y定义、数据集特征、变量含义和类型,这有助于更准确地进行EDA。
  • 在使用Sweetviz时,需要考虑数据量和变量数量对报告生成时间的影响,并且可以通过配置来优化报告的生成。
  • 数据分析师应该不断学习新工具和方法,以适应不断变化的世界,并在工作和个人项目中实践所学。

Sweetviz-一個在資料分析前必須先使用的套件

Upsplash

大家好久不見,轉眼間已經準備要11月了,自身的能力也隨著時間的推移不斷的進步著,世界也是一直在變化著。現在沒有意外的話,應該都是2~3週會新增一篇技術文章,讓自己不斷保持著學習狀態。

此次文章流程:

(1) 回想

(2) 介紹

(3) 實際Demo

(4) 結論

再開始之前,可以連結至我的Github,搭配著文章一起觀賞!

(1) 回想

請各位可以試著回想或想像一下,當自己在面對一個從來沒看過的資料集時,你會怎麼做分析?我認為可能會需要以下步驟:

  1. 暸解為什麼要分析這個資料集,通常是痛點
  2. 暸解Y定義,就是你要用什麼方法來解決通點
  3. 暸解資料集的樣態
  4. 暸解資料集的X變數的含義和類型
  5. 進行EDA(探索性資料分析)嘗試利用X變數或Y定義來找出或驗證特別的Insights

以上的步驟非常吃你對你在做的事情的專業知識,以第4到第5的步驟來說,在一般進行變數的EDA時,如果剛好X變數非常的多,你根本會像個無頭蒼蠅似的,不知道要從哪個變數的畫圖開始,要精準的判斷與準備EDA圖表會非常困難,雖然我們都知道在分析的過程實在是無法完美的估算完成時間,但是如果有個工具能夠幫助你先一次的畫出圖表,你再從看似最有影響力或可發揮性最大的變數開始,我認爲是一個很有效的方法。

(2) 介紹

所以,這篇文章介紹的是Sweetviz,一個非常強大的Python套件,能夠

  1. 快速幫你完成你的資料集的EDA(探索性資料分析)和相關統計量的計算,同時也能幫助你
  2. 比較兩個不同資料集的特徵樣態或是
  3. 比較兩個子資料集的特徵樣態
Sweetviz官方Github Sample

(3) 實際Demo

要成功介紹一個套件的最好的方法就是實際demo給你們看,那在開始前,如果你還沒有安裝sweetviz的話,可以開啟cmd來pip

pip install sweetviz

在demo之前,想先提醒你們,因為資料量和X變數的量有大有小,Sweetviz對於製作圖表的時候,都會預先針對變數去計算correlation,這個方法在資料集變大的時候就會使得產生報表的時間顯著變慢,所以,你可以考慮在接下來analyze或compare的時候,多加入一個參數:

pairwise_analysis='off'

在這次Demo,所使用的資料集一個大家耳熟能詳,來自Kaggle的Titanic資料集,讓大家可以花越少的時間去熟悉資料,這樣就可以花越少的去熟練套件。

那在使用sweetviz前,有前置作業需要被完成,那就是讀取資料

train = pd.read_csv('./titanic/train.csv', index_col=0)
test = pd.read_csv('./titanic/test.csv', index_col=0)

再來就可以針對每種不同的報表去寫code了

# 要記得import!
import sweetviz as sv

1. 基本報表

基本報表顧名思義就是不需要更改太多的參數,只要使用其預設的參數就會獲得的報表

report_train = sv.analyze([train, 'train']) # 'train'是指會給這個資料集命名為train
report_train.show_html(filepath='Basic_train_report.html') # 儲存為html的格式

2. 加入目標變數(Y定義)的報表

如果你已經有畫過基本報表,可能會發現Sweetviz會去自動推斷你的X變數分別是屬於哪個型態,文字型、數值型或是類別型,而它的自動判定的型態不一定你期待的,所以你可以進行更改。

feature_config = sv.FeatureConfig(skip='Name',  # 要忽略哪個特徵
                                  force_cat=['Pclass', 'Sex', 'SibSp', 'Parch', 'Ticket', 'Cabin'], # Categorical特徵
                                  force_num=['Age', 'Fare'], # Numerical特徵
                                  force_text=None) # Text特徵

處理好X變數型態的錯誤後,可以將目標變數的名稱告訴Sweetviz,它會基於原本的基本報表,將各個X變數在目標變數下的狀況都額外畫給你看,請看以下:

report_train_with_target = sv.analyze([train, 'train'],
                                     target_feat='Survived', # 加入特徵變數
                                     feat_cfg=feature_config)
                                     
report_train_with_target.show_html(filepath='Basic_train_report_with_target.html')

3. 比較train和test的報表

我們在切分train和test兩個資料集的時候,常常會需要比較其是否具有的變數特性,如只有一資料集具備某種特性,會使得訓練和預測時產生overfitting或underfiiting的狀況。

compare_report = sv.compare([train, 'Training Data'], # 使用compare
                            [test, 'Test Data'],
                            'Survived',
                            feat_cfg=feature_config)

compare_report.show_html(filepath='Compare_train_test_report.html')
圖也越來越好看了

4. 比較Male和Female兩個子資料集的報表

來到了最後一個報表,剛剛上面的報表是在比較兩個不同的母資料集的樣態,而現在這個報表目的是在比較同個母體中,一個二元的X變數所代表的兩個不同的資料集的樣態,這邊以男和女為例,可以更進階的去分析,是否男生和女生在其他的X變數中會有不一樣的樣態。

compare_subsets_report = sv.compare_intra(train,
                                          train['Sex']=='male', # 給條件區分
                                          ['Male', 'Female'], # 為兩個子資料集命名 
                                          target_feat='Survived',
                                          feat_cfg=feature_config)

compare_subsets_report.show_html(filepath='Compare_male_female_report.html'

(4) 結論

透過我的引導,相信你也輕鬆寫意的學會了這個套件,但是真正難的部分,還是在你做完報表後,要怎麼分析,怎麼讓你的圖表產生巨大的價值,這也是你的價值所在

又到了這篇文章的最後,感謝你看到這裡,希望我每次的文章都可以帶給你新的東西,讓你不管在工作中或者是其他個人專案上,都有著些許的突破,也能不斷的去擁抱未知的東西,一起加油!

一樣,有問題的話都可以寄信給我,我的信箱是[email protected]

Data Visualization
Dashboard
Python
Data Science Tools
Recommended from ReadMedium