數據加載和數據預處理:
(1)利用Pandas庫進行數據加載和預處理:處理問題數據,日期格式解析,NaN值的處理,分組和聚類,排序和索引,文本數據的編碼,詞頻統計等;
(2)利用Numpy庫進行數據處理:數組的創建,矩陣運算,數組切片,堆疊等。
數據分析:
(1)數據的探索性分析;
(2)高維數據的維數約減;
(3)異常數據的檢測和處理;
(4)算法驗證和參數優化及特征選擇。
機器學習:
(1)基本的機器學習方法;
(2)機器學習方法的組合;
(3)大數據的處理和深度學習。
數據可視化:
(1)Matplotlib畫圖;
(2)交互式可視化;
(3)高級數據學習表示。
EDA簡介
探索性數據分析(Exploratory Data Analysis)
EDA主要工作:對數據進行清洗,對數據進行描述(描述統計量,圖表),查看數據的分布,比較數據之間的關系,培養對數據的直覺,對數據進行總結等。
“探索性”指分析者對待解問題的理解會隨着研究的深入不斷變化。
基本步驟:
- A. 檢查數據
- B. 使用表述統計量和圖表對數據進行描述
- C. 考察變量之間的關系
- D. 檢驗特征分布
- E. 其他
A 檢查數據
-是否有缺失值?
-是否有異樣值?
-是否有重復值?
-樣本是否均衡?
-是否需要抽樣?
-變量是否需要轉換?
-是否需要增加系的特征?
例:
數據類型:數值型(包括整數,浮點數),類別型(字符串等),文本型,時間序列等。
注:主要考慮數值型(定量數據)和類別型(定性數據);數值型又可以分為連續型和離散型。
B 數據描述
describe() 生成描述性統計數據:總結數據分布的集中趨勢,分散和形狀,不包括NaN值。
help(pandas.DataFrame.describe) 查看關於Pandas數據框的describe()函數的使用說明。
例:
利用描述性統計得到一個頻數分布表:.describe()
count 觀測值的數量=shape[0]
mean 平均值
std 標准差
min 最小值
25% 1/4中位數
50% 1/2中位數
75% 3/4中位數
max 最大值
利用箱線圖將頻數分布表可視化:.boxplot()
boxes = iris.boxplot(return_type='axes')
特征去重復統計:.unique()
去除一維數組或列表中重復的元素,並按元素由大到小返回一個新的無元素重復的元組或者列表。
C 特征相關性
共生矩陣/交叉表 crosstab() :用於統計分組頻率的特殊透視表。
發現:長度,寬度與特征值的比較幾乎同時發生,即要么同時大於均值,要么同時小於均值。
假設特征petal_length,petal_width相關,對其進行圖像化顯示
說明:
kind 種類:scatter 散點圖
x X軸:petal_width
y Y軸:petal_length
c 顏色:blue
edgecolors 邊緣顏色:white
結果:
補充kind:str
'line' 折線圖
'bar' 條形圖
'barth' 橫向條形圖
'hist' 柱狀圖
'box' 箱線圖
'kde' 對柱狀圖形添加Kernel概率密度線
'density' same as 'kde'
'area' 不了解此圖
'pie' 餅圖
'scatter' 散點圖,需要傳入columns方向的索引
'hexbin' 不了解此圖
D 特征分布
使用直方圖近似表示特征的概率分布:
EDA總結:
- pandas讀取數據集,顯示前5行確認是否加載正確
必要時對列名重命名
- 查看數據整體情況
行列數 data.shape
數據類型 data.dtypes
同時查看這兩項 data.info()
查看連續變量的描述統計量 data.describe()
- 處理缺失值,異常值,重復值問題
各列分別有多少個缺失值 data.apply(lambda x:sum(x.isnull()),axis=0)
各行分別有多少個缺失值 data.apply(lambda x:sum(x.isnull()),axis=1)
總共有多少行有缺失值 len(data.apply(lambda x:sum(x.isnull()),axis=1).nonzero()[0])
刪除重復值 data.drop_duplicates(0
- 分析特征之間相關性
- 檢驗數據分布