@@ -81,6 +81,8 @@ define([
8181that . hideInstallButton ( ) ;
8282}
8383
84+ that . handleScoringOptions ( modelType ) ;
85+
8486// reset model param set
8587$ ( that . wrapSelector ( '.vp-param-grid-box' ) ) . html ( '' ) ;
8688$ ( that . wrapSelector ( '.vp-param-grid-box' ) ) . html ( that . templateForParamSet ( ) ) ;
@@ -140,6 +142,10 @@ define([
140142let parentTag = $ ( thisTag ) . parent ( ) ;
141143let paramIsText = $ ( parentTag ) . find ( '.vp-param-val' ) . data ( 'type' ) === 'text' ; // text / var
142144let paramVal = $ ( parentTag ) . find ( '.vp-param-val' ) . val ( ) ;
145+ let reservedKeywordList = [ 'None' , 'True' , 'False' , 'np.nan' , 'np.NaN' ] ;
146+ if ( reservedKeywordList . includes ( paramVal ) ) {
147+ paramIsText = false ;
148+ }
143149// check , and split it
144150let paramSplit = paramVal . split ( ',' ) ;
145151paramSplit && paramSplit . forEach ( val => {
@@ -195,6 +201,58 @@ define([
195201} ) ;
196202}
197203
204+ handleScoringOptions ( modelType ) {
205+ let options = {
206+ 'Classification' :[
207+ "'accuracy'" ,
208+ "'balanced_accuracy'" ,
209+ "'top_k_accuracy'" ,
210+ "'average_precision'" ,
211+ "'neg_brier_score'" ,
212+ "'f1'" ,
213+ "'f1_micro'" ,
214+ "'f1_macro'" ,
215+ "'f1_weighted'" ,
216+ "'f1_samples'" ,
217+ "'neg_log_loss'" ,
218+ "'precision' etc." ,
219+ "'recall' etc." ,
220+ "'jaccard' etc." ,
221+ "'roc_auc'" ,
222+ "'roc_auc_ovr'" ,
223+ "'roc_auc_ovo'" ,
224+ "'roc_auc_ovr_weighted'" ,
225+ "'roc_auc_ovo_weighted'" ,
226+ ] ,
227+ 'Regression' :[
228+ "'explained_variance'" ,
229+ "'max_error'" ,
230+ "'neg_mean_absolute_error'" ,
231+ "'neg_mean_squared_error'" ,
232+ "'neg_root_mean_squared_error'" ,
233+ "'neg_mean_squared_log_error'" ,
234+ "'neg_median_absolute_error'" ,
235+ "'r2'" ,
236+ "'neg_mean_poisson_deviance'" ,
237+ "'neg_mean_gamma_deviance'" ,
238+ "'neg_mean_absolute_percentage_error'" ,
239+ "'d2_absolute_error_score'" ,
240+ "'d2_pinball_score'" ,
241+ "'d2_tweedie_score'"
242+ ]
243+ }
244+ let modelCategory = this . modelTypeList [ 'Regression' ] . includes ( modelType ) ?'Regression' :'Classification' ;
245+
246+ // Set suggestInput on scoring option
247+ var suggestInput = new SuggestInput ( ) ;
248+ suggestInput . setComponentID ( 'scoring' ) ;
249+ suggestInput . setPlaceholder ( 'Select option' ) ;
250+ suggestInput . addClass ( 'vp-input vp-state' ) ;
251+ suggestInput . setSuggestList ( function ( ) { return options [ modelCategory ] ; } ) ;
252+ suggestInput . setNormalFilter ( true ) ;
253+ $ ( this . wrapSelector ( '#scoring' ) ) . replaceWith ( suggestInput . toTagString ( ) ) ;
254+ }
255+
198256templateForParamSet ( ) {
199257let paramSetNo = 1 ;
200258// set param set number
@@ -378,6 +436,7 @@ define([
378436let thisTag = $ ( that . wrapSelector ( '.' + suggestInput . uuid ) ) ;
379437that . handleAddParamValue ( $ ( thisTag ) ) ;
380438$ ( thisTag ) . val ( '' ) ;
439+ return false ;
381440} ) ;
382441paramSet . appendLine ( suggestInput . toTagString ( ) ) ;
383442}
@@ -394,6 +453,8 @@ define([
394453
395454// Model Editor
396455this . modelEditor = new ModelEditor ( this , "model" , "instanceEditor" ) ;
456+
457+ this . handleScoringOptions ( this . state . modelType ) ;
397458}
398459
399460generateInstallCode ( ) {
@@ -432,7 +493,6 @@ define([
432493state [ 'estimator' ] = estimator ;
433494state [ 'param_grid' ] = '{}' ;
434495
435- let reservedKeywordList = [ 'None' , 'True' , 'False' , 'np.nan' , 'np.NaN' ] ;
436496let paramGrid = [ ] ;
437497// generate param_grid
438498$ ( this . wrapSelector ( '.vp-param-set-box' ) ) . each ( ( i , tag ) => {