2017-08-10 72 views
0

我使用下面的代码训练我的数据:Postgres的-马德利布预测花费的时间比训练

start_time := clock_timestamp(); 
    PERFORM madlib.create_nb_prepared_data_tables('nb_training', 
               'class', 
               'attributes', 
               'ARRAY[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57]', 
               57, 
               'categ_feature_probs', 
               'numeric_attr_params', 
               'class_priors' 
               ); 
    training_time := 1000* (extract(epoch FROM clock_timestamp()) - extract(epoch FROM start_time)); 

而且我预测的代码去如下:

start_time := clock_timestamp(); 
    PERFORM madlib.create_nb_probs_view('categ_feature_probs', 
             'class_priors', 
             'nb_testing', 
             'id', 
             'attributes', 
             57, 
             'numeric_attr_params', 
             'probs_view'); 

select * from probs_view 
prediction_time := 1000 * (extract(epoch FROM clock_timestamp()) - extract(epoch FROM start_time)); 

的训练数据包含450000条记录测试数据集包含50000条记录。

但是,我的平均训练时间大约为17173毫秒,其中预测时间为26481毫秒。根据我对朴素贝叶的理解,预测时间应该小于training_time。我在这里做错了什么?

回答

1

Naive Bayes classification MADlib的早期阶段,这意味着接口和实现在这个阶段是初步的。有一堆open JIRAs告诉我,在升级到顶级模块之前需要一些努力。

相关问题