程式+機器學習+指示符+標準化

如何規範各項指標納入一列?

  • February 14, 2017

我已經看到了這個影片,談論如何將不同的指標壓縮到罪中

<https://www.youtube.com/watch?v=sDu6CudKa0Q>

我試圖用這種方式做同樣的事情:

data_hist['sma10']  = talib.SMA(data_hist['close'].values, 10)  
data_hist['difsma'] = data_hist['close'] - data_hist['sma10']  
data_hist['cci10']  = talib.CCI(data_hist['high'].values, data_hist['low'].values, data_hist['close'].values, 10)  
data_hist['mom5']   = talib.MOM(data_hist['close'].values, 5)


data_hist.dropna(inplace=True)  

cols = ['cci10', 'mom5', 'difsma']  
data_hist['norm'] = ( data_hist[cols].sum(axis=1) - data_hist[cols].mean(axis=1) ) / data_hist[cols].std(axis=1)

但這是輸出數據的一個例子(它不在-1和1之間)

2013-09-11 00:00:00+00:00   -1.557247
2013-09-12 00:00:00+00:00   -1.686368
2013-09-13 00:00:00+00:00   -2.160459
2013-09-16 00:00:00+00:00   -2.805381
2013-09-17 00:00:00+00:00   -2.770916
2013-09-18 00:00:00+00:00   -1.726371
2013-09-19 00:00:00+00:00   -1.610760
2013-09-20 00:00:00+00:00   -1.645410
2013-09-23 00:00:00+00:00    2.143846
2013-09-24 00:00:00+00:00    1.863802
2013-09-25 00:00:00+00:00    1.847545
2013-09-26 00:00:00+00:00    1.956981
2013-09-27 00:00:00+00:00    2.507031
2013-09-30 00:00:00+00:00   -0.856816
2013-10-01 00:00:00+00:00    1.422277
2013-10-02 00:00:00+00:00    1.604809 

我錯過了什麼?在單個列中壓縮各種指標的替代方案?

標準化數據不應該進入但是,它們應該是0(因為你減去了樣本的平均值),並且值以不同的方式傳播0的值,這使得它在不同的變數尺寸之間相當(因為你除以標準偏差樣本)。

一個快速的例子是讓我們說你比較兩個隨機樣本和. 看到這一點可能有些“困難”和實際上以相同的方式分發,但是通過查看值來分發。

但標準化的數據將顯示它們實際上完全相同:

然而,這並不意味著它將包含在-1到1之間。

引用自:https://quant.stackexchange.com/questions/32396