這篇總結是在做完Kaggle上的競賽題Titanic: Machine Learning from Disaster之后寫的一點關于python使用以及數據分析方面的總結。
目錄
- python使用
- 數據分析
1. python使用
-
當使用np.array()方法將數據data轉換成數組data_arr之后,只要data中有一個元素是字符串,那么轉換之后的data_arr元素類型是字符串型。如圖1。
圖 1 -
數組可以使用單獨的下標獲取某一行,而dataframe只能使用一個下標的序列來獲取某一行。如圖2。
圖 2 -
注意data_arr的size方法:該方法為統計data_arr中的元素個數,而非行數。需要得到行數使用len方法。如圖3。
圖 3 -
當從二維數組中抽出一列時,抽出的這一列數據不再具有二維屬性,不能同時使用行列下標來獲取數據。如圖4。
圖 4 -
df.info()方法可以瞬間查看缺失值,好東西!!!
圖 5 -
繪制直方圖可以使用很方便的df中的hist()方法。
圖 6 df的loc方法非常牛逼,可以很容易的使用條件過濾定位到df中的某一行,并重新賦值。notebook這個東西更厲害,以后可以不用寫筆記了。
2. 數據分析
- 在拿到數據后,我想第一件事應該就是弄清楚數據的各個屬性含義、屬性之間的關系等。
- 我當時的整個過程應該寫在notebook上的。
- 了解哪些屬性需要高度關注。這得建立在背景知識的了解上。
- 如果要對離散值進行分級,那么首先應該觀察該屬性值的分布,了解大部分數據都落在哪個位置,以便確定等級劃分。就如泰坦尼克號的數據集中的Fare屬性。
- 在進行數據分析時,缺失值的處理非常重要,如果再跑大型程序突然終止,而終止原因是因為缺失值未處理,那人都要死!!!
- 對于缺失值的填充,有多種方法。
- 使用中位數、眾數或者均值填充。但是使用這種方法時也不是一味的將某個屬性所有值的中位數(眾數/均值)用來填充缺失值,而是觀察這些數據是否可以分成若干個子集。就像票價(Fare)這個屬性的缺失值處理,我們可以使用根據社會經濟等級(Pclass)劃分的眾數來填補。
- 可以使用其他屬性值來預測:這一塊還沒有經驗。
- 邏輯推斷:這一塊還沒有經驗。
- 在對原始數據進行轉換時,一般都轉換成數值型數據,便于統計及機器學習。
- 在特征選取方面,可以通過多個特征的組合來產生一個新的特征。就如這個例子中將年齡(Age)和社會經濟地位(Pclass)的乘積作為一個新的特征。