程式+機器學習+指示符+標準化
如何規範各項指標納入一列?
我已經看到了這個影片,談論如何將不同的指標壓縮到罪中
<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之間。