Day Two——填充缺失值、歸一化數據、PCA降維分析

Day Two——填充缺失值、歸一化數據、PCA降維分析

完整代碼及數據地址

第一部分數據catering_sale.xls

第二部分數據normalization_data.xls

第三部分數據discretization_data.xls

第四部分數據electricity_data.xls

第五部分數據leleccum.mat

第六部分數據principal_component.xls

第一部分——拉格朗日填值

對應函數programmer_1

步驟

  1. 讀取數據

  2. 將異常數據(篩選數據)重新賦值爲Nan

  3. 找到空值索引isnull

  4. 對於每個空值調用ployinterp_column函數, 函數返回scipy.interpolate.lagrange填充值

  5. 導出excel表to_excel

說明

在選取數據的時候最好使用.loc方法,如果用複合條件篩選df[condition][condition]。會有下面兩個影響。

  1. 使用.loc官方推薦方法,查詢速度會更快

  2. 使用複合條件篩選,可能會產生一些不可名狀的錯誤。

某些情況下,如果直接使用複合條件進行賦值,會有個SetWarning

SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy

賦值的時候,有時候可以考慮把第一個條件改爲[[conition]],這樣輸出爲DataFrame,之後再用索引進行賦值,也不會報waning。

還有一種方法就是用copy()方法,將原來的數據進行提取

以上具體說明查閱pandas文檔

第二部分——數據規範化

對應函數programmer_2

步驟

  1. 讀取數據

  2. 最小-最大規範化(歸一化)

    XXminXmaxXmin
  3. 零-均值規範化

    XXmeanXstd
  4. 小數定標規範化

    X10[lg|X|max]

P.S.np.ceil: 向上取整、np.log10: 以10爲底取對數

第三部分——分別用三種聚類方法可視化

對應函數programmer_3

步驟:

  1. 讀取數據,提取需要聚類的數據部分

  2. 第一種方法,使用pandas直接指定聚類數(多少簇),使用pd.cut進行分類。

  3. 第二種方法,使用等頻率離散化方法,重新指定分類標準。提取五個分位點0、25%、50%、75%、1的數據,再使用pd.cut進行分類。

  4. 第三種方法,使用sklearn.cluster.KMeans方法,提取聚類中心進行排序,之後再得出邊界點,再使用pd.cut進行分類。

  5. 可視化

說明:

pd.cut(x, bins, precision=3):
對函數這幾個參數進行介紹,xSeries數據,precision是聚類數。着重介紹bins

分兩種情況:

  1. 整型,表示定義了x範圍內的等寬的bins數,可以拓展x(包含x的最大值最小值)

  2. 序列(數組),運行每類寬度不等,不能擴展x(可能不包含最大值最小值)

官方文檔

使用reshape時報了一個warning。解決方法就是跟警告說明一樣,在原來基礎上使用.values.shape

FutureWarning: reshape is deprecated and will raise in a subsequent release. Please use .values.reshape(...) instead

圖形如下:

![pic3_1.png](
https://raw.githubusercontent.com/wnma3mz/python_ds_dm_note/master/chapter4/img/3_1.png)

![pic3_2.png](
https://raw.githubusercontent.com/wnma3mz/python_ds_dm_note/master/chapter4/img/3_2.png)

![pic3_3.png](
https://raw.githubusercontent.com/wnma3mz/python_ds_dm_note/master/chapter4/img/3_3.png)

第四部分——pandas計算比率

對應函數programmer_4

步驟:

  1. 提取數據

  2. 根據已有數據,算出新數據。供入電量與供出電量的差值除以供入電量得出線損率。

  3. 保存數據

第五部分——利用小波分析進行特徵分析

對應函數programmer_5

小波分析。。。知識盲區,在這裏不做介紹

第六部分——使用PCA降維數據

對應函數programmer_6

主成分分析,主要用於高維度數據降維。

部分函數說明

  • components_: 特徵空間中的主軸,代表數據中最大方差的方向。

  • explained_variance_ratio_: 每個選定組件解釋的變化量。等於x的協方差矩陣的n_components最大特徵值。

官網地址

發佈了78 篇原創文章 · 獲贊 37 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章