0 / 0
영어 버전 문서로 돌아가기
applyextension 특성
마지막 업데이트 날짜: 2024년 10월 07일
applyextension 특성

확장 모델 노드를 사용하여 확장 모델 너깃을 생성할 수 있습니다. 이 모델 너깃의 스크립팅 이름은 applyextension입니다. 모델링 노드 자체의 스크립팅에 대한 자세한 정보는 extensionmodelnode 특성을 참조하십시오.

Python for Spark 예제

script example for Python for Spark
applyModel = stream.findByType("extension_apply", None)

score_script = """
import json
import spss.pyspark.runtime
from pyspark.mllib.regression import LabeledPoint
from pyspark.mllib.linalg import DenseVector
from pyspark.mllib.tree import DecisionTreeModel
from pyspark.sql.types import StringType, StructField

cxt = spss.pyspark.runtime.getContext()

if cxt.isComputeDataModelOnly():
    _schema = cxt.getSparkInputSchema()
    _schema.fields.append(StructField("Prediction", StringType(), nullable=True))
    cxt.setSparkOutputSchema(_schema)
else:
    df = cxt.getSparkInputData()

    _modelPath = cxt.getModelContentToPath("TreeModel")
    metadata = json.loads(cxt.getModelContentToString("model.dm"))

    schema = df.dtypes[:]
    target = "Drug"
    predictors = ["Age","BP","Sex","Cholesterol","Na","K"]

    lookup = {}
    for i in range(0,len(schema)):
        lookup[schema[i][0]] = i

    def row2LabeledPoint(dm,lookup,target,predictors,row):
        target_index = lookup[target]
        tval = dm[target_index].index(row[target_index])
        pvals = []
        for predictor in predictors:
            predictor_index = lookup[predictor]
            if isinstance(dm[predictor_index],list):
                pval = row[predictor_index] in dm[predictor_index] and dm[predictor_index].index(row[predictor_index]) or -1
            else:
                pval = row[predictor_index]
            pvals.append(pval)
        return LabeledPoint(tval, DenseVector(pvals))

    # convert dataframe to an RDD containing LabeledPoint
    lps = df.rdd.map(lambda row: row2LabeledPoint(metadata,lookup,target,predictors,row))
    treeModel = DecisionTreeModel.load(cxt.getSparkContext(), _modelPath);
    # score the model, produces an RDD containing just double values
    predictions = treeModel.predict(lps.map(lambda lp: lp.features))

    def addPrediction(x,dm,lookup,target):
        result = []
        for _idx in range(0, len(x[0])):
            result.append(x[0][_idx])
        result.append(dm[lookup[target]][int(x[1])])
        return result

    _schema = cxt.getSparkInputSchema()
    _schema.fields.append(StructField("Prediction", StringType(), nullable=True))
    rdd2 = df.rdd.zip(predictions).map(lambda x:addPrediction(x, metadata, lookup, target))
    outDF = cxt.getSparkSQLContext().createDataFrame(rdd2, _schema)

    cxt.setSparkOutputData(outDF)
"""
applyModel.setPropertyValue("python_syntax", score_script)

R 예제

script example for R
applyModel.setPropertyValue("r_syntax", """
result<-predict(modelerModel,newdata=modelerData)
modelerData<-cbind(modelerData,result)
var1<-c(fieldName="NaPrediction",fieldLabel="",fieldStorage="real",fieldMeasure="",
fieldFormat="",fieldRole="")
modelerDataModel<-data.frame(modelerDataModel,var1)""")
표 1. applyextension 특성
applyextension 특성 특성 설명
r_syntax 문자열 모델 스코어링의 R 스크립팅 구문
python_syntax 문자열 모델 스코어링을 위한 Python 스크립팅 구문입니다.
use_batch_size 플래그 배치 처리 사용을 가능하게 합니다.
batch_size 정수 각 배치에 포함할 데이터 레코드의 수를 지정하십시오.
convert_flags StringsAndDoubles
LogicalValues
플래그 필드를 변환하는 옵션.
convert_missing 플래그 결측값을 R로 변환하는 옵션NA값.
convert_datetime 플래그 날짜 또는 날짜/시간 형식을 갖는 변수를 R 날짜/시간 형식으로 변환하는 옵션.
convert_datetime_class
POSIXct

POSIXlt
날짜 또는 날짜/시간 형식을 갖는 변수를 변환할 형식을 지정하는 옵션.
일반적인 AI 검색 및 응답
이러한 응답은 제품 문서의 컨텐츠를 기반으로 하는 watsonx.ai 의 대형 언어 모델에 의해 생성됩니다. 자세히 알아보기