精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

關于機器學習與比特幣的示例

人工智能 機器學習
本系列教程中講到的ump裁判系統是abupy中通過機器學習技術對回測結果進行學習,反向指導決策新的交易是否攔截的實際應用,本節講解機器學習在量化領域很有作用的另一個方向:閥值的估計,因為無論是編寫選股策略,擇時策略還是任何涉及決策的代碼模型中都離不開閥值。

[[201737]]

我曾經編寫過豬老三的世界中使用機器學習對股價和漲跌進行預測的幻想示例:

[[201738]]

在豬老三的世界中實現了:機器學習.fit(x, y) = (股價預測,漲跌預測) =發財

在豬老三的童話中我設定的可以影響股價走勢的參數是有限個的,特別是影響漲跌的因素很容易構造特征。在真實的市場中可以影響股價走勢的因素是***多的,而且這些因素之間的也可以是相關的。就像你求解一個方程組,這個方程組不是有一個兩個解,它是有***個解的系統,并且每個解都與其他任意個解相關,但又并非簡單線性相關。市場是一個二級混沌系統,認為任何想通過技術對股價進行預測或者漲跌預測都是不可能的,不倫你自己認為你使用的技術本身有多高深,無異于管中窺豹。

本系列教程中講到的ump裁判系統是abupy中通過機器學習技術對回測結果進行學習,反向指導決策新的交易是否攔截的實際應用,本節講解機器學習在量化領域很有作用的另一個方向:閥值的估計,因為無論是編寫選股策略,擇時策略還是任何涉及決策的代碼模型中都離不開閥值,比如最常用的止盈止損策略,在代碼的編寫中就一定會涉及閥值,比如之前的章節一直使用的abupy中內置止盈止損策略AbuFactorCloseAtrNStop。

之所以一定會涉及閥值的確定是因為就像剛剛說的類似你求解一個方程組,如果所有的參數都是未知數,那么你怎么解出你需要的答案,所以一定要把一些變量變成常數值,然后通過這些常數值來確定更多的變量,最終解出你所關心的解。

對于閥值的確定傳統的做法是根據經驗來設定,實際上所謂的經驗是個體對問題的統計模型, 在機器學習技術的幫助下,可以實現更客觀,全面,適應范圍更廣的閥值設定。

不論是個體經驗對閥值進行常量定估還是通過機器學習技術通過數據模型對閥值進行定估,都達不到絕對準確預測結果的目標,量化交易的概率優勢并不具有絕對的優勢,即達不到預測的程度,量化交易中大多策略是基于對歷史規律的總結,在規律的基礎上發現概率優勢,它的***理論依據是人性的相似性以及人性很難改變的事實,如果每一個瞬間的股票價格都是全體交易者對價值所達成的一種瞬間共識,那么歷史的規律在今后的交易中同樣具有指導意義。

按照上面解方程的說法就是,定估的常量只要能滿足大多數時候解出合理的解,甚至很多時候定估的常量只要能滿足有時候能解出合理的解就可以,對于有時候能解出合理的情況,可以在上層通過非均衡技術對決策進行二次邏輯過濾,我反復提及過的非均衡技術思想是量化中很很重要的一種設計思路,因為我們量化的目標結果就是非均衡,我們想要贏的錢比輸的多。

1. 比特幣特征的提取

下面通過對比特幣的短線交易決策為例,示例上述論點以及abupy中機器學習模塊的使用,以及數據獲取:

  1. from abupy import abu, ml, nd, tl, pd_resample, AbuML, AbuMLPd, AbuMetricsBase  
  2. from abupy import ABuSymbolPd, ABuScalerUtil, get_price, ABuMarketDrawing, ABuKLUtil 
  3.  
  4. # btc是比特幣symbol代號 
  5. btc = ABuSymbolPd.make_kl_df('btc', start='2013-09-01'end='2017-07-26' 

之前在比特幣, 萊特幣的回測那節使用ABuKLUtil.date_week_wave對走勢的日震蕩做過統計如下:

  1. ABuKLUtil.date_week_wave(btc) 
  1. date_week 
  2.  
  3. 周一 5.0108 
  4.  
  5. 周二 5.5610 
  6.  
  7. 周三 5.4437 
  8.  
  9. 周四 5.7275 
  10.  
  11. 周五 5.3008 
  12.  
  13. 周六 4.7875 
  14.  
  15. 周日 4.6528 
  16.  
  17. Name: wave, dtype: float64  

從上面可以看出大概0.055的日震蕩幅度可以成做大波動的交易對比特幣來說,下面對數據添加新列big_wave,可以看到結果大波動的占總交易日的1/3:

  1. btc['big_wave'] = (btc.high - btc.low) / btc.pre_close > 0.055 
  2. btc['big_wave'] = btc['big_wave'].astype(int
  3. btc['big_wave'].value_counts()  
  1. 0 1005 
  2.  
  3. 1 420 
  4.  
  5. Name: big_wave, dtype: int64  

任何大的決策其實都是由很多看極起來極不起眼的小事組成的,如果我們是做比特幣日內的交易者,首先你需要判斷今天適不適合做交易,做出這個判斷的依據里有一條即是今天的波動需要足夠大,下面通過機器學習技術演示如何決策今天的波動是否足夠大。

備注:由于abupy中內置沙盒數據沒有分時的數據,所以本示例使用日線數據做為分析對象,實際策略中應該使用的是分鐘數據

首先切割訓練集和測試集,保留***60天走勢數據做為測試集數據:

  1. btc_train_raw = btc[:-60] 
  2.  
  3. btc_test_raw = btc[-60:] 

 

下面為訓練集和測試集數據都加上5,10,21,60日均線特征:

  1. def calc_ma(tc, ma): 
  2.     ma_key = 'ma{}'.format(ma) 
  3.     tc[ma_key] = nd.ma.calc_ma_from_prices(tc.close, ma, min_periods=1) 
  4. for ma in [5, 10, 21, 60]: 
  5.     calc_ma(btc_train_raw, ma) 
  6.     calc_ma(btc_test_raw, ma) 
  7. btc_train_raw.tail(1) 

 

編寫特征抽取組合函數btc_siblings_df:

  • 它首先將所有交易日以3個為一組,切割成多個子df,即每一個子df中有3個交易日的交易數據
  • 使用數據標準化將連續3天交易日中的連續數值特征進行標準化操作
  • 抽取***天,第二天的大多數特征分別改名字以one,two為特征前綴,如:one_open,one_close,two_ma5,two_high…..,
  • 第三天的特征只使用’open’, ‘low’, ‘pre_close’, ‘date_week’,該名前綴today,如today_open,today_date_week
  • 第三天的抽取了’big_wave’,其將在之后做為y
  • 將抽取改名字后的特征連接起來組合成為一條新數據,即3天的交易數據特征->1條新的數據

代碼如下所示:

  1. def btc_siblings_df(btc_raw): 
  2.     # 將所有交易日以3個為一組,切割成多個子df,即每一個子df中有3個交易日的交易數據 
  3.     btc_siblings = [btc_raw.ix[sib_ind * 3:(sib_ind + 1) * 3, :] 
  4.                     for sib_ind in np.arange(0, int(btc_raw.shape[0] / 3))] 
  5.  
  6.     btc_df = pd.DataFrame() 
  7.     for sib_btc in btc_siblings: 
  8.         # 使用數據標準化將連續3天交易日中的連續數值特征進行標準化操作 
  9.         sib_btc_scale = ABuScalerUtil.scaler_std( 
  10.             sib_btc.filter(['open''close''high''low''volume''pre_close'
  11.                             'ma5''ma10''ma21''ma60''atr21''atr14'])) 
  12.         # 把標準化后的和big_wave,date_week連接起來 
  13.         sib_btc_scale = pd.concat([sib_btc['big_wave'], sib_btc_scale, sib_btc['date_week']], axis=1) 
  14.  
  15.         # 抽取***天,第二天的大多數特征分別改名字以one,two為特征前綴,如:one_open,one_close,two_ma5,two_high..... 
  16.         a0 = sib_btc_scale.iloc[0].filter(['open''close''high''low''volume''pre_close'
  17.                                            'ma5''ma10''ma21''ma60''atr21''atr14''date_week']) 
  18.         a0.rename(index={'open''one_open''close''one_close''high''one_high''low''one_low'
  19.                          'volume''one_volume''pre_close''one_pre_close'
  20.                          'ma5''one_ma5''ma10''one_ma10''ma21''one_ma21'
  21.                          'ma60''one_ma60''atr21''one_atr21''atr14''one_atr14'
  22.                          'date_week''one_date_week'}, inplace=True
  23.  
  24.         a1 = sib_btc_scale.iloc[1].filter(['open''close''high''low''volume''pre_close'
  25.                                            'ma5''ma10''ma21''ma60''atr21''atr14''date_week']) 
  26.         a1.rename(index={'open''two_open''close''two_close''high''two_high''low''two_low'
  27.                          'volume''two_volume''pre_close''two_pre_close'
  28.                          'ma5''two_ma5''ma10''two_ma10''ma21''two_ma21'
  29.                          'ma60''two_ma60''atr21''two_atr21''atr14''two_atr14'
  30.                          'date_week''two_date_week'}, inplace=True
  31.         # 第三天的特征只使用'open''low''pre_close''date_week',該名前綴today,如today_open,today_date_week 
  32.         a2 = sib_btc_scale.iloc[2].filter(['big_wave''open''low''pre_close''date_week']) 
  33.         a2.rename(index={'open''today_open''low''today_low'
  34.                          'pre_close''today_pre_close'
  35.                          'date_week''today_date_week'}, inplace=True
  36.         # 將抽取改名字后的特征連接起來組合成為一條新數據,即3天的交易數據特征->1條新的數據 
  37.         btc_df = btc_df.append(pd.concat([a0, a1, a2], axis=0), ignore_index=True
  38.     return btc_df  

第三天的特征避免使用high是因為訓練的目標y是big_wave,之所以可以使用當天的low是因為比特幣市場的特點為24小時交易,即沒有明確的一天的概念,也即沒有明確一天中的***,實盤使用即人工對當前***根據24小時***進行猜測,或直接使用24小時***,或者使用當前的***價格都可,組成數據后使用模型進行決策,決策的結果即為未來數小時內是否會有大的波動,實際上最終大波動的決策成立,需要其它很多模型共同生效,比如外盤的走勢決策等等。

下面使用訓練集數據btc_train_raw做為參數抽取組合特征,重新組合好的特征如tail所示:

  1. btc_train0 = btc_siblings_df(btc_train_raw) 
  2.  
  3. btc_train0.tail() 
 

如上所示這樣我們只能得到454條訓練集數據,但由于每3條連續交易日數據組合成一個特征,只要向前跳一條數據進行特征組合抽取即可以得到另一組新特征,下面分別跳過***個,第二個數據,抽取btc_train1,btc_train2:

  1. btc_train1 = btc_siblings_df(btc_train_raw[1:]) 
  2.  
  3. btc_train2 = btc_siblings_df(btc_train_raw[2:])  

下面把上面的3組特征連起來,然后把周幾這個特征使用pd.get_dummies進行離散化處理,使得所有特征值的范圍都在0-1之間,最終的特征如下btc_train所示:

  1. btc_train = pd.concat([btc_train0, btc_train1, btc_train2]) 
  2.  
  3. btc_train.index = np.arange(0, btc_train.shape[0]) 
  4.  
  5. dummies_one_week = pd.get_dummies(btc_train['one_date_week'], prefix='one_date_week'
  6.  
  7. dummies_two_week = pd.get_dummies(btc_train['two_date_week'], prefix='two_date_week'
  8.  
  9. dummies_today_week = pd.get_dummies(btc_train['today_date_week'], prefix='today_date_week'
  10.  
  11. btc_train.drop(['one_date_week''two_date_week''today_date_week'], inplace=True, axis=1) 
  12.  
  13. btc_train = pd.concat([btc_train, dummies_one_week, dummies_two_week, dummies_today_week], axis=1) 
  14.  
  15. pd.options.display.max_rows=10 
  16.  
  17. btc_train 

 

2. abu中內置機器學習模塊的使用

下面使用abupy中內置機器學習工具AbuML對特征數據進行封裝,代碼如下所示,下面的y值即是big_wave列:

  1. train_matrix = btc_train.as_matrix() 
  2.  
  3. y = train_matrix[:, 0] 
  4.  
  5. x = train_matrix[:, 1:] 
  6.  
  7. btc_ml = AbuML(x, y, btc_train)  

AbuML會根據數據特點自動內部選擇使用分類器或者回歸器,下面進行特指***分類器操作,比如特指使用隨機森林做為分類器,執行random_forest_classifier_best會在內部對n_estimators參數和訓練集數據進行grid search擬合,尋找最合適的參數最終做為內部分類器:

  1. btc_ml.random_forest_classifier_best() 
  2.  
  3. start grid search please wait...  

 

 

 

  1. RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',
  2.  
  3. max_depth=None, max_features='auto', max_leaf_nodes=None, 
  4.  
  5. min_impurity_split=1e-07, min_samples_leaf=1, 
  6.  
  7. min_samples_split=2, min_weight_fraction_leaf=0.0, 
  8.  
  9. n_estimators=260, n_jobs=1, oob_score=False, random_state=None, 
  10.  
  11. verbose=0, warm_start=False 

所有best函數中尋找***參數內部只根據學習器的特點尋找最少量的參數設置,如果需要自定義參數范圍可使用如下所示: 

  1. param_grid = {'max_features': ['sqrt''log2'], 'n_estimators': np.arange(50, 500, 50)} 
  2.  
  3. btc_ml.random_forest_classifier_best(param_grid=param_grid) 
  4.  
  5. start grid search please wait...  

 

  1. RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini'
  2.  
  3. max_depth=None, max_features='sqrt', max_leaf_nodes=None, 
  4.  
  5. min_impurity_split=1e-07, min_samples_leaf=1, 
  6.  
  7. min_samples_split=2, min_weight_fraction_leaf=0.0, 
  8.  
  9. n_estimators=400, n_jobs=1, oob_score=False, random_state=None, 
  10.  
  11. verbose=0, warm_start=False 

下面使用btc_ml對訓練集進行交叉準確率評分:

  1. btc_ml.cross_val_accuracy_score() 
  2.  
  3. RandomForestClassifier score mean: 0.8151620867325032 
  4.  
  5. array([ 0.781 , 0.8102, 0.7883, 0.8382, 0.8162, 0.8162, 0.8235, 
  6.  
  7. 0.8456, 0.7794, 0.8529])  

下面使用btc_ml對訓練集進行交叉roc_auc評分:

  1. btc_ml.cross_val_roc_auc_score() 
  2.  
  3. RandomForestClassifier score mean: 0.8399573797130188 
  4.  
  5. array([ 0.815 , 0.8785, 0.8166, 0.8018, 0.8707, 0.8484, 0.8148, 
  6.  
  7. 0.8551, 0.8005, 0.8981])  

AbuML對外的函數都支持關鍵子參數fiter_type,可以指定使用的學習器類型如回歸,聚類等,每個函數都通過內部裝飾器聲明自己支持的學習器類型對不支持的類型輸出不支持,如下想通過指定使用回歸器進行roc_auc評分:

  1. btc_ml.cross_val_roc_auc_score(fiter_type=ml.EMLFitType.E_FIT_REG) 
  1. cross_val_roc_auc_score not support reg! 

上述輸出顯示函數不支持回歸器,因為內部實現中通過entry_wrapper裝飾器聲明了只支持E_FIT_CLF,即分類器:

  1. @entry_wrapper(support=(EMLFitType.E_FIT_CLF,)) 
  2. def cross_val_roc_auc_score(self, cv=10, **kwargs): 
  3.     ""
  4.     被裝飾器entry_wrapper(support=(EMLFitType.E_FIT_CLF,))裝飾, 
  5.     即支持有監督學習分類,使用cross_val_score對數據進行roc_auc度量,如果數據的y的 
  6.     label標簽 > 2,通過label_binarize將label標簽進行二值化處理, 
  7.     依次計算二值化的列的roc_auc,結果返回score***的數據度量 
  8.     :param cv: 透傳cross_val_score的參數,默認10 
  9.     :param kwargs: 外部可以傳遞x, y, 通過 
  10.                             x = kwargs.pop('x', self.x) 
  11.                             y = kwargs.pop('y', self.y) 
  12.                    確定傳遞self._do_cross_val_score中參數x,y, 
  13.                    以及裝飾器使用的fiter_type,eg: 
  14.                    ttn_abu.cross_val_roc_auc_score(fiter_type=ml.EMLFitType.E_FIT_REG) 
  15.     :return: cross_val_score返回的score序列, 
  16.              eg: array([ 1.  ,  0.9 ,  1.  ,  0.9 ,  1.  ,  0.9 ,  1.  ,  0.9 ,  0.95,  1.  ]) 
  17.     ""
  18.     x = kwargs.pop('x', self.x) 
  19.     y = kwargs.pop('y', self.y) 
  20.     return self._do_cross_val_score(x, y, cv, _EMLScoreType.E_SCORE_ROC_AUC.value)  

更多詳情實現請閱讀源代碼AbuML

下面使用train_test_split_xy查看訓練集輸出的precision_score,recall_score,混淆矩陣,以及f1等度量結果:

  1. btc_ml.train_test_split_xy()  
  1. x-y:(1363, 48)-(1363,) 
  2. train_x-train_y:(1226, 48)-(1226,) 
  3. test_x-test_y:(137, 48)-(137,) 
  4. accuracy = 0.77 
  5. precision_score = 0.62 
  6. recall_score = 0.39 
  7.           Predicted 
  8.          |  0  |  1  | 
  9.          |-----|-----| 
  10.        0 |  90 |   9 | 
  11. Actual   |-----|-----| 
  12.        1 |  23 |  15 | 
  13.          |-----|-----| 
  14.              precision    recall  f1-score   support 
  15.  
  16.         0.0       0.80      0.91      0.85        99 
  17.         1.0       0.62      0.39      0.48        38 
  18.  
  19. avg / total       0.75      0.77      0.75       137  

下面通過plot_roc_estimator繪制roc曲線:

  1. btc_ml.plot_roc_estimator() 

 

下面通過plot_confusion_matrices繪制混淆矩陣:

  1. btc_ml.plot_confusion_matrices() 
  1. [[915 65] 
  2.  
  3. [183 200]]  

 

 

下面通過plot_decision_function繪制決策邊界,由于繪制2d圖,內部已經使用pca將數據特征降維后再繪制:

  1. btc_ml.plot_decision_function() 

 

下面通過plot_graphviz_tree繪制邏輯決策圖:

  1. btc_ml.plot_graphviz_tree() 
  1. RandomForestClassifier not hasattr tree_, use decision tree replace 

 

下面通過feature_selection對特征的支持度進行評級:

  1. pd.options.display.max_rows = 48 
  2.  
  3. btc_ml.feature_selection(show=False).sort_values(by='ranking'

 

下面通過importances_coef_pd對特征的重要程度進行量化:

  1. btc_ml.importances_coef_pd().sort_values(by='importance')[::-1] 

 

3. 測試集的驗證與非均衡技術

下面將前面保留切割的60條測試數據進行特征抽取組合,方式和抽取訓練集時一樣,代碼如下所示:

  1. btc_test0 = btc_siblings_df(btc_test_raw) 
  2. btc_test1 = btc_siblings_df(btc_test_raw[1:]) 
  3. btc_test2 = btc_siblings_df(btc_test_raw[2:]) 
  4. btc_test = pd.concat([btc_test0, btc_test1, btc_test2]) 
  5. btc_test.index = np.arange(0, btc_test.shape[0]) 
  6. dummies_one_week = pd.get_dummies(btc_test['one_date_week'], prefix='one_date_week'
  7. dummies_two_week = pd.get_dummies(btc_test['two_date_week'], prefix='two_date_week'
  8. dummies_today_week = pd.get_dummies(btc_test['today_date_week'], prefix='today_date_week'
  9. btc_test.drop(['one_date_week''two_date_week''today_date_week'], inplace=True, axis=1) 
  10. btc_test = pd.concat([btc_test, dummies_one_week, dummies_two_week, dummies_today_week], axis=1) 
  11. matrix_test = btc_test.as_matrix() 
  12. y_test = matrix_test[:, 0] 
  13. x_test = matrix_test[:, 1:]  

對測試集數據進行準確率評估,代碼如下所示:

  1. from sklearn import metrics 
  2.  
  3. y_predict = [btc_ml.predict(x_test[test_ind])[0] for test_ind in np.arange(0, matrix_test.shape[0])] 
  4.  
  5. print('測試集正確率{:3f}'.format(metrics.accuracy_score(y_test, y_predict)))  
  1. 測試集正確率0.620690 

如上所示上面的準確率結果為60%以上正確,下面使用predict_proba看看概率結果:

  1. y_prob = [btc_ml.predict_proba(x_test[test_ind])[0] for test_ind in np.arange(0, matrix_test.shape[0])] 
  1. y_prob[-10:] 
  1. [array([ 0.495,  0.505]), 
  2.  array([ 0.9075,  0.0925]), 
  3.  array([ 0.7875,  0.2125]), 
  4.  array([ 0.83,  0.17]), 
  5.  array([ 0.8375,  0.1625]), 
  6.  array([ 0.96,  0.04]), 
  7.  array([ 0.58,  0.42]), 
  8.  array([ 0.495,  0.505]), 
  9.  array([ 0.6575,  0.3425]), 
  10.  array([ 0.565,  0.435])]  

本節開始的時候說過很多時候定估的決策只要能滿足有時候能解出合理的解就可以,通過非均衡技術對決策進行二次邏輯過濾即可,下面解釋這句話的意思,通過上面y_predict輸出你可以看到準確率結果為60%以上,如果你只按照這個決策認定比特幣今天是否有大行情還是有很多錯誤的可能,上面的y_prob輸出了每一個決策的概率。

那么我們如果希望做比特幣交易只希望在決策模型有很大把握的情況下才做,否則寧可少賺點錢也不做應該怎么做呢?

上面predict的決策在某一個值在0.5以上即進行了判斷,如果我們希望把握更大一些就需要調整這個值,比如0.55以上才能認定決策,那首要的問題就是如何選定這個閥值,下面示例使用search_match_pos_threshold進行閥值的確定:

  1. btc_ml.search_match_pos_threshold(accuracy_match=0.85) 
  1. 0.580 satisfy require, accuracy:0.854, effect_rate:0.879  

結果如上所示,search_match_pos_threshold函數的作用是對訓練集數據進行非均衡結果度量,從0.5至0.99的范圍內開始不斷向上調整決策閥值:

比如測試閥值為0.55,那么如果決策的概率為array([ 0.5378, 0.4622]),那么通過閥值二分化后結果為(0, 0),這個結果將不計入正確率統計中,即認為未達成有效的決策,但如果決策的概率為 array([ 0.9711, 0.0289]),那么通過閥值二分化后結果為(1, 0),認為達成有效的決策,當有效的決策正確率達到參數accuracy_match傳遞的值,本例中使用0.85即85%的正確率時,停止搜索,本例返回的結果為0.580,即使用閥值0.580可以達成非均衡決策的85%正確率。

備注:與之對應search_match_neg_threshold進行閥值搜索,從0.5至0.01的范圍內開始不斷向下調整決策閥值,更多詳情請閱讀源代碼。

下面使用0.580做為閥值,通過predict_proba_threshold函數進行決策,代碼如下:

  1. y_prob_threshold = [btc_ml.predict_proba_threshold(x_test[test_ind], 0.580, 0) 
  2.  
  3. for test_ind in np.arange(0, matrix_test.shape[0])]  

上面predict_proba_threshold傳遞的第三個參數0為未達成有效決策的情況下返回的決策結果,即閥值二分化后結果為(0, 0)后這里返回0,因為在比特幣這個示例中如果交易者想要保守的方式決策今天是否適合做日內交易,那么就希望只在有很大概率的情況下返回1,即適合交易,其它情況下沒有太大把握下全部返回0即可,下面使用precision_score計算查準率:

  1. metrics.precision_score(y_test, y_prob_threshold) 
  1. 1.0 

如上所示查準率100%正確,但召回率評分非常低,即比特幣在很多有大行情的情況下為了保守,放棄了日交易,只在把握大的時候行動:

  1. metrics.recall_score(y_test, y_prob_threshold) 
  1. 0.20000000000000001 

與上面的情況相反也有些激進的交易者想要的決策結果是只要今天不是很大把握說沒有行情,那就進行交易。

下面使用0.90做為閥值,通過predict_proba_threshold函數進行決策,第三個參數1即在為未達成有效決策的情況下返回的決策結果為1,可以看到結果的決策中大多數都被決策為1,代碼如下:

  1. y_prob_threshold = [btc_ml.predict_proba_threshold(x_test[test_ind], 0.90, 1) 
  2.  
  3. for test_ind in np.arange(0, matrix_test.shape[0])] 
  4.  
  5. pd.Series(y_prob_threshold).value_counts()  
  1. 1 49 
  2.  
  3. 0 9 
  4.  
  5. dtype: int64  

4. 繼承AbuMLPd對數據處理進行封裝

在abupy中不建議直接使用AbuML類進行構造,推薦使用繼承AbuMLPd后實現make_xy方法,在make_xy中將數據訓練集和測試集進行組裝完成,AbuMLPd基類通過代理方法對AbuML中的所有方法進行代理,即可以和使用AbuML中的方法一樣的接口操作,本節使用的示例內置在abupy項目中BtcBigWaveClf類,具體實現請直接閱讀BtcBigWaveClf。 

小結:由于abupy中內置沙盒數據沒有分時的數據,所以本示例使用日線數據做為分析對象,實際策略中應該使用的是分鐘數據,本節示例主要為配合abupy中機器學習模塊的使用示例所寫,與真實的日內交易決策還有很大差別。  

責任編輯:龐桂玉 來源: 36大數據
相關推薦

2022-09-30 14:15:07

區塊鏈比特幣虛擬貨幣

2018-10-24 10:40:41

2021-02-19 18:47:24

比特幣加密貨幣區塊鏈

2020-11-10 18:00:12

比特幣區塊鏈

2021-03-02 08:49:00

區塊鏈比特幣技術

2021-01-08 14:40:56

比特幣加密貨幣區塊鏈

2021-06-08 21:49:06

比特幣區塊鏈礦工

2020-12-10 15:20:22

數字人民幣比特幣區塊鏈

2018-02-26 12:10:44

比特幣區塊鏈投資

2018-02-27 16:49:07

比特幣激勵挖礦

2020-05-20 20:00:46

比特幣數字貨幣區塊鏈

2017-08-07 18:35:52

機器學習統計與計算發展啟示

2021-03-08 11:17:44

區塊鏈比特幣安全

2021-03-22 11:26:45

比特幣貨幣加密貨幣

2021-03-08 15:47:21

比特幣加密貨幣貨幣

2021-02-22 11:50:49

比特幣加密貨幣美元

2021-01-25 16:20:27

比特幣互聯網技術

2018-04-10 08:31:44

2021-02-18 16:19:58

比特幣加密資產貨幣

2017-06-08 12:26:23

點贊
收藏

51CTO技術棧公眾號

女教师淫辱の教室蜜臀av软件| 黑人糟蹋人妻hd中文字幕| 国产精品欧美久久久久天天影视| 欧美高清不卡| 国产丝袜一区二区三区免费视频| 日本成人中文字幕在线| 在线免费观看a视频| 99精品视频在线观看| 国产欧美中文字幕| 国产精品成人aaaa在线| 欧美一区二区三| 精品国产一区久久| 亚欧激情乱码久久久久久久久| 欧美韩日亚洲| 国产精品看片你懂得| 精品国产乱码久久久久久丨区2区 精品国产乱码久久久久久蜜柚 | 日韩欧美成人一区二区三区| 久久久久久久久久久妇女| 精品网站999www| 午夜诱惑痒痒网| 亚洲精品555| 欧美香蕉大胸在线视频观看| xxxxxx在线观看| аⅴ资源新版在线天堂| av在线不卡电影| 7777精品伊久久久大香线蕉语言| 黄色片视频免费| 亚洲黄色av| 欧美激情videos| 欧美成人短视频| 国产探花在线精品一区二区| 亚洲国产高清福利视频| 亚洲制服在线观看| 久久91超碰青草在哪里看| 欧美性猛xxx| 成年人午夜视频在线观看| 在线xxxx| 亚洲女性喷水在线观看一区| 亚洲精品中文字幕乱码三区不卡| 日韩黄色影片| 26uuu精品一区二区| 国产精品久久精品国产| 亚洲国产精品一| 国产精品一区二区三区四区| 成人精品在线视频| 91精品国自产| 久久精品久久久精品美女| 国产精品久久一区| 国产又粗又猛又黄视频| 久久综合伊人| 国产成人亚洲精品| www.com亚洲| 日本在线不卡视频| 国产精品免费一区豆花| 日批视频免费观看| 美国毛片一区二区| 国产精品视频区| 一级黄色免费看| 国产一区免费电影| 亚洲www视频| 午夜精品久久久久久久99| 国产精品一区二区久久不卡| 99久久伊人精品影院| 国产强伦人妻毛片| 成人免费观看视频| 久久精品丝袜高跟鞋| 免费黄色在线视频网站| 亚洲国产经典视频| 亚洲一区二区三区精品在线观看 | 全球av集中精品导航福利| 亚洲成年网站在线观看| 亚洲av无码一区二区三区观看| 加勒比中文字幕精品| 亚洲女人初尝黑人巨大| 欧美黄色高清视频| 午夜精品久久久久99热蜜桃导演 | 久久久人成影片一区二区三区在哪下载| 欧美日韩激情网| 亚洲成人福利在线观看| 超碰国产精品一区二页| 欧美大片拔萝卜| 久久无码人妻精品一区二区三区| 亚洲三级精品| 日韩在线视频网站| 久久国产一级片| 亚洲一区自拍| 成人福利网站在线观看11| 国产成人麻豆精品午夜在线 | 免费观看久久久4p| 亚洲综合在线做性| 视频一区二区三区在线看免费看 | 日韩av综合网| 亚洲一二三精品| 狠狠爱综合网| 国产欧美 在线欧美| 亚洲乱码国产乱码精品精软件| 91在线看国产| 7777在线视频| 女生影院久久| 欧美xingq一区二区| 受虐m奴xxx在线观看| 亚洲精品99| 国产成人久久久| 亚洲成人777777| 国产精品入口麻豆原神| 极品粉嫩国产18尤物| 91麻豆精品| 亚洲无线码在线一区观看| 欧美国产日韩综合| 日韩高清不卡一区二区三区| 风间由美久久久| 国产三级在线观看| 亚洲不卡在线观看| 91香蕉视频免费看| 不卡一区综合视频| 97视频在线播放| 99久久一区二区| 国产精品视频看| 国产美女无遮挡网站| 国产亚洲字幕| 精品国内亚洲在观看18黄| 中文人妻av久久人妻18| aaa亚洲精品| 欧美一二三不卡| www.久久热| 中文字幕久精品免费视频| www毛片com| 91香蕉视频mp4| 国产真实老熟女无套内射| 91丨精品丨国产| 色综久久综合桃花网| 91porny九色| 91蝌蚪国产九色| 国自产拍偷拍精品啪啪一区二区| 9l视频自拍九色9l视频成人| 欧美成人高清视频| 国产精品一区二区免费视频| 国产精品色哟哟网站| 无码少妇一区二区三区芒果| 小嫩嫩12欧美| 日本不卡免费高清视频| 天堂资源最新在线| 欧美日韩精品二区| 欧美 变态 另类 人妖| 国产一区成人| 免费电影一区| 欧美freesex| 伊人久久精品视频| 欧美日韩 一区二区三区| 久久久精品综合| 激情视频综合网| 日韩大片在线| 91精品久久久久久久久久久久久 | 亚洲久草在线视频| 亚洲午夜精品在线观看| 欧美日韩日本国产亚洲在线 | 日本欧美黄网站| 欧美孕妇孕交xxⅹ孕妇交| 色综合久久综合网97色综合| 男人天堂av电影| 日本午夜精品视频在线观看| 亚洲三级一区| 免费精品一区| 午夜精品福利在线观看| 欧洲一区av| 欧美婷婷六月丁香综合色| 国产精品免费在线视频| 国产精品99久久不卡二区| av在线观看地址| 亚洲国产精品嫩草影院久久av| 国产不卡视频在线| 国产一二区在线| 精品国产青草久久久久福利| 亚洲综合久久网| 国产精品久久777777| 在线成人免费av| 亚洲美女网站| 亚洲永久激情精品| а√中文在线天堂精品| 日韩av手机在线看| 黄色在线观看网站| 日韩av在线资源| 国产精品九九九九| 亚洲va天堂va国产va久| 快灬快灬一下爽蜜桃在线观看| 国产制服丝袜一区| 久草青青在线观看| 午夜影院欧美| 久久综合一区| 97精品资源在线观看| 久久人人97超碰精品888| 国产福利小视频在线| 日韩欧美成人午夜| 无码人妻丰满熟妇区bbbbxxxx| 亚洲人成网站在线| 老鸭窝一区二区| 国产高清在线观看免费不卡| 免费日韩视频在线观看| 综合久久99| 日韩精品一区二区三区丰满 | 欧美精品一区二区精品网| 亚洲不卡视频在线观看| 一区二区三区丝袜| 日本黄色激情视频| 99久久er热在这里只有精品66| 中日韩av在线播放| 欧美亚洲视频| 日韩精品在线观看av| 99视频精品视频高清免费| 欧美日韩精品久久| 黑人久久a级毛片免费观看| 国产伦精品免费视频| 中文字幕乱码在线播放| 欧美激情女人20p| 老司机在线视频二区| 亚洲精品一二区| 蜜臀久久久久久999| 777色狠狠一区二区三区| 无码无套少妇毛多18pxxxx| 亚洲成av人片在线| 欧美成欧美va| 亚洲三级电影全部在线观看高清| 精品欧美一区二区久久久| 99免费精品视频| www.四虎在线| 国产盗摄一区二区三区| 天天摸天天舔天天操| 日本不卡123| 又色又爽又高潮免费视频国产| 99精品国产在热久久下载| 大荫蒂性生交片| 伊人久久大香线蕉综合四虎小说 | 26uuu成人网| 成人欧美一区二区三区小说| 91在线无精精品白丝| 久久久久亚洲蜜桃| av在线网站观看| 91老司机福利 在线| 右手影院亚洲欧美| 久久综合视频网| 久久人人爽人人爽人人片| 久久尤物电影视频在线观看| 中文乱码人妻一区二区三区视频| 成人美女视频在线观看18| av电影在线播放| 高清成人在线观看| 这里只有精品在线观看视频| 不卡的av中国片| 国产精品无码电影| 久久色在线视频| 久久国产柳州莫菁门| 中文字幕av免费专区久久| 成人无码精品1区2区3区免费看 | 成人黄色综合网站| 美女久久久久久久久| 99精品久久久久久| 国产三级av在线播放| 国产精品麻豆99久久久久久| 91 在线视频| 一区二区三区四区不卡在线| 中文字幕在线观看免费视频| 色综合久久久久综合99| 国产精品51麻豆cm传媒 | 成人做爰69片免费| 99精品视频在线观看| 蜜桃av乱码一区二区三区| 国产精品国产自产拍高清av| 视频国产一区二区| 亚洲一区二区av电影| 人妻丰满熟妇av无码区| 欧美丝袜第三区| 亚洲成人一级片| 亚洲欧美www| 日本中文字幕视频在线| 欧美激情小视频| 欧美第一视频| 91日本视频在线| 秋霞蜜臀av久久电影网免费| 亚洲欧美日本国产有色| 激情视频一区二区三区| mm1313亚洲国产精品无码试看| 国精产品一区一区三区mba桃花 | 国产后入清纯学生妹| 亚洲精品美女久久| 日韩精品黄色| 韩国三级日本三级少妇99| 99亚洲伊人久久精品影院| 97视频中文字幕| 久草成人资源| 台湾无码一区二区| 日韩成人av影视| 逼特逼视频在线观看| 国产精品久久久久久久久免费相片| 久久久久成人精品无码| 欧美又粗又大又爽| 少妇无码一区二区三区| 日韩一区二区三区国产| 黄色在线网站噜噜噜| 国产精品青草久久久久福利99| 一区二区三区四区视频免费观看 | 欧美啪啪一区| 超碰在线97免费| 波多野结衣中文一区| 欧美xxxooo| 色天天综合久久久久综合片| www.国产麻豆| 色偷偷av亚洲男人的天堂| 色是在线视频| 成人h视频在线观看| 久久伦理在线| 精品视频一区二区在线| 成人动漫av在线| 精品无码久久久久成人漫画| 色94色欧美sute亚洲线路二 | 最新在线中文字幕| 日韩精品中文字幕久久臀| 欧美bbbxxxxx| 91在线国产电影| 久久香蕉国产| 手机在线免费观看毛片| 久久久国产综合精品女国产盗摄| 国产一级一片免费播放| 日韩欧美中文一区二区| 巨大荫蒂视频欧美另类大| 国产精品美腿一区在线看| 性欧美xxxx免费岛国不卡电影| 国产91视频一区| 国产99久久久精品| 亚洲最大的黄色网址| 3d成人动漫网站| 黄色免费在线观看| 91精品免费视频| 香蕉综合视频| 亚洲av毛片在线观看| 亚洲欧美乱综合| h狠狠躁死你h高h| 久久成人精品一区二区三区| 在线不卡一区| 国产精品88久久久久久妇女| 国产在线精品一区二区不卡了| 亚洲少妇xxx| 717成人午夜免费福利电影| 天堂а√在线官网| 亚洲一区二区三区久久| 欧美在线看片| 中文字幕人妻熟女在线| 亚洲成人自拍一区| 五月婷婷六月丁香综合| 欧美亚洲免费电影| 偷拍亚洲色图| 无码少妇一区二区三区芒果| 国产欧美精品区一区二区三区 | 亚洲日本在线观看视频| 日韩不卡av| 麻豆精品视频在线| 天堂网avav| 精品国产凹凸成av人网站| 激情国产在线| 日韩欧美一区二区在线观看| 老司机一区二区| 曰本女人与公拘交酡| 亚洲第一偷拍网| 欧美日韩视频免费观看| 在线看无码的免费网站| 国产成人午夜精品5599 | 亚洲影音一区| av资源在线免费观看| 欧美一级电影网站| 国产精品xx| 亚洲v欧美v另类v综合v日韩v| 国内欧美视频一区二区| 九九九国产视频| 一本色道久久88精品综合| 在线播放成人| 欧美大片在线播放| 国产精品久久久久9999吃药| www.亚洲欧美| 日韩av观看网址| 欧美精选一区| 日本少妇高潮喷水xxxxxxx| 欧美精品一二三四| 亚洲第一av| 欧美少妇一区二区三区| 久久久久久久久伊人| 国产精品探花视频| 欧美一级大胆视频| 正在播放日韩欧美一页 | 四虎影视在线观看2413| 国产免费成人av| 国产亚洲综合精品| 欧美偷拍第一页| 亚洲一区二区精品| 91久久精品无嫩草影院| 色婷婷狠狠18| 亚洲v精品v日韩v欧美v专区| 日本在线观看www| 蜜桃av色综合| 国产高清成人在线| 中文字幕av久久爽| 91po在线观看91精品国产性色|