@@ -81,6 +81,8 @@ define([
81
81
that . hideInstallButton ( ) ;
82
82
}
83
83
84
+ that . handleScoringOptions ( modelType ) ;
85
+
84
86
// reset model param set
85
87
$ ( that . wrapSelector ( '.vp-param-grid-box' ) ) . html ( '' ) ;
86
88
$ ( that . wrapSelector ( '.vp-param-grid-box' ) ) . html ( that . templateForParamSet ( ) ) ;
@@ -140,6 +142,10 @@ define([
140
142
let parentTag = $ ( thisTag ) . parent ( ) ;
141
143
let paramIsText = $ ( parentTag ) . find ( '.vp-param-val' ) . data ( 'type' ) === 'text' ; // text / var
142
144
let 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
+ }
143
149
// check , and split it
144
150
let paramSplit = paramVal . split ( ',' ) ;
145
151
paramSplit && paramSplit . forEach ( val => {
@@ -195,6 +201,58 @@ define([
195
201
} ) ;
196
202
}
197
203
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
+
198
256
templateForParamSet ( ) {
199
257
let paramSetNo = 1 ;
200
258
// set param set number
@@ -378,6 +436,7 @@ define([
378
436
let thisTag = $ ( that . wrapSelector ( '.' + suggestInput . uuid ) ) ;
379
437
that . handleAddParamValue ( $ ( thisTag ) ) ;
380
438
$ ( thisTag ) . val ( '' ) ;
439
+ return false ;
381
440
} ) ;
382
441
paramSet . appendLine ( suggestInput . toTagString ( ) ) ;
383
442
}
@@ -394,6 +453,8 @@ define([
394
453
395
454
// Model Editor
396
455
this . modelEditor = new ModelEditor ( this , "model" , "instanceEditor" ) ;
456
+
457
+ this . handleScoringOptions ( this . state . modelType ) ;
397
458
}
398
459
399
460
generateInstallCode ( ) {
@@ -432,7 +493,6 @@ define([
432
493
state [ 'estimator' ] = estimator ;
433
494
state [ 'param_grid' ] = '{}' ;
434
495
435
- let reservedKeywordList = [ 'None' , 'True' , 'False' , 'np.nan' , 'np.NaN' ] ;
436
496
let paramGrid = [ ] ;
437
497
// generate param_grid
438
498
$ ( this . wrapSelector ( '.vp-param-set-box' ) ) . each ( ( i , tag ) => {
0 commit comments