python資料分析(預測性分析與機器學習)
阿新 • • 發佈:2019-01-06
本文涉及到的主題如下所示:
- 預處理
- 基於邏輯迴歸的分類
- 基於支援向量機的分類
- 基於ElasticNetCV的迴歸分析
- 支援向量迴歸
- 基於相似性傳播
- 均值漂移演算法
- 遺傳演算法
- 神經網路
- 決策樹演算法
1、預處理
在上一章,我們已經做過一次預處理,即過濾掉停用詞。一些機器學習演算法對某些資料比較頭疼,因為這些資料不服從高斯分佈,即不滿足數學期望為0,標準差為1的條件。模組sklearn.preprocessing從而應運而生,本節詳細介紹該模組的使用方法。在https://www.knmi.nl/nederland-nu/klimatologie/daggegevens下載編號260的De Blit資料。我們所要的資料只是原始資料檔案中的一列而已,這一列記錄的是日降雨量。程式碼:
執行結果:#coding:utf8 import numpy as np from sklearn import preprocessing from scipy.stats import anderson # 載入資料 rain = np.load('rain.npy') rain = .1 * rain rain[rain < 0] = .05 / 2 print("Rain mean", rain.mean()) #計算期望值 print("Rain Variance", rain.var()) #計算標準差 print("Anderson Rain", anderson(rain))#安德森檢驗 scaled = preprocessing.scale(rain) #對資料進行縮放處理,使滿足期望為0,方差為1 print("Scaled mean", scaled.mean()) print("Scaled Variance", scaled.var()) print("Anderson Scaled", anderson(scaled)) # 把特徵值從數值型轉換布林型,(正值用1,負值為0表示) binarized = preprocessing.binarize(rain) print("binarized", np.unique(binarized), binarized.sum()) # 分類標準類別,輸出0-62之間的整數 lb = preprocessing.LabelBinarizer() lb.fit(rain.astype(int)) print(lb.classes_)
Rain mean 2.17919594267 Rain Variance 18.803443919 Anderson Rain AndersonResult(statistic=inf,critical_values=array([ 0.576, 0.656, 0.787, 0.918, 1.092]), significance_level=array([ 15. , 10. , 5. , 2.5, 1. ])) Scaled mean 3.41301602808e-17 Scaled Variance 1.0 Anderson ScaledAndersonResult(statistic=inf, critical_values=array([ 0.576, 0.656, 0.787, 0.918, 1.092]), significance_level=array([ 15., 10. , 5. , 2.5, 1. ])) binarized [ 0. 1.] 24594.0 [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2324 2526 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 43 44 45 46 47 48 49 50 5253 55 58 61 62]