MCPcopy Create free account
hub / github.com/sql-machine-learning/sqlflow / Pred

Function Pred

go/codegen/xgboost/codegen.go:347–406  ·  view source on GitHub ↗

Pred generates a Python program for predict a xgboost model.

(predStmt *ir.PredictStmt, session *pb.Session)

Source from the content-addressed store, hash-verified

345
346// Pred generates a Python program for predict a xgboost model.
347func Pred(predStmt *ir.PredictStmt, session *pb.Session) (string, error) {
348 featureColumnCode, featureFieldDesc, trainLabelFieldDesc, err := deriveFeatureColumnCodeAndFieldDescs(predStmt.TrainStmt.Features["feature_columns"], predStmt.TrainStmt.Label)
349
350 // predict output column name may be different to the column name used when training.
351 resultFieldDesc := &ir.FieldDesc{
352 Name: predStmt.ResultColumn,
353 DType: trainLabelFieldDesc.DType,
354 Delimiter: trainLabelFieldDesc.Delimiter,
355 Format: trainLabelFieldDesc.Format,
356 Shape: trainLabelFieldDesc.Shape,
357 IsSparse: trainLabelFieldDesc.IsSparse,
358 Vocabulary: trainLabelFieldDesc.Vocabulary,
359 MaxID: trainLabelFieldDesc.MaxID,
360 }
361
362 if err != nil {
363 return "", err
364 }
365 f, fs, err := resolveFeatureMeta(featureFieldDesc)
366 if err != nil {
367 return "", err
368 }
369 trainLabelJSON, err := json.Marshal(resolveFieldMeta(&trainLabelFieldDesc))
370 if err != nil {
371 return "", err
372 }
373 predLabelJSON, err := json.Marshal(resolveFieldMeta(resultFieldDesc))
374 if err != nil {
375 return "", err
376 }
377
378 paiPredictTable := ""
379 if tf.IsPAI() && predStmt.TmpPredictTable != "" {
380 paiPredictTable = predStmt.TmpPredictTable
381 }
382
383 r := predFiller{
384 DataSource: session.DbConnStr,
385 PredSelect: predStmt.Select,
386 FeatureMetaJSON: string(f),
387 FeatureColumnNames: fs,
388 FeatureColumnCode: featureColumnCode,
389 TrainLabelMetaJSON: string(trainLabelJSON),
390 PredLabelMetaJSON: string(predLabelJSON),
391 ResultTable: predStmt.ResultTable,
392 HDFSNameNodeAddr: session.HdfsNamenodeAddr,
393 HiveLocation: session.HiveLocation,
394 HDFSUser: session.HdfsUser,
395 HDFSPass: session.HdfsPass,
396 IsPAI: tf.IsPAI(),
397 PAITable: paiPredictTable,
398 }
399
400 var program bytes.Buffer
401
402 if err := predTemplate.Execute(&program, r); err != nil {
403 return "", err
404 }

Callers 2

ExecutePredictMethod · 0.92
TestTrainAndPredictFunction · 0.70

Calls 4

resolveFeatureMetaFunction · 0.85
resolveFieldMetaFunction · 0.85
StringMethod · 0.45

Tested by 1

TestTrainAndPredictFunction · 0.56