0 / 0
Go back to the English version of the documentation
Właściwości węzła extensionmodelnode
Last updated: 04 lip 2023
Właściwości węzła extensionmodelnode

Ikona węzła modelu rozszerzeniaZ węzłem wynikowym Extension można uruchomić skrypty R lub Python for Spark w celu utworzenia i oceny wyników.

Należy zauważyć, że wiele właściwości i wiele informacji znajdujących się na tej stronie ma zastosowanie tylko do strumieni SPSS Modeler Desktop .

Python for Spark — przykład

import modeler.api
stream = modeler.script.stream()
node = stream.create("extension_build", "extension_build")
node.setPropertyValue("syntax_type", "Python")

build_script = """
import json
import spss.pyspark.runtime
from pyspark.mllib.regression import LabeledPoint
from pyspark.mllib.linalg import DenseVector
from pyspark.mllib.tree import DecisionTree

cxt = spss.pyspark.runtime.getContext()
df = cxt.getSparkInputData()
schema = df.dtypes[:]

target = "Drug"
predictors = ["Age","BP","Sex","Cholesterol","Na","K"]

def metaMap(row,schema):
    col = 0
    meta = []
    for (cname, ctype) in schema:
        if ctype == 'string':
            meta.append(set([row[col]]))
        else:
            meta.append((row[col],row[col]))
        col += 1        
    return meta

def metaReduce(meta1,meta2,schema):
    col = 0
    meta = []
    for (cname, ctype) in schema:
        if ctype == 'string':
            meta.append(meta1[col].union(meta2[col]))
        else:
            meta.append((min(meta1[col][0],meta2[col][0]),max(meta1[col][1],meta2[col][1])))
        col += 1
    return meta

metadata = df.rdd.map(lambda row: metaMap(row,schema)).reduce(lambda x,y:metaReduce(x,y,schema))

def setToList(v):
    if isinstance(v,set): 
        return list(v)
    return v

metadata = map(lambda x: setToList(x), metadata)
print metadata

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 = dm[predictor_index].index(row[predictor_index])
        else:
            pval = row[predictor_index]
        pvals.append(pval)
    return LabeledPoint(tval,DenseVector(pvals))

# count number of target classes
predictorClassCount = len(metadata[lookup[target]])

# define function to extract categorical predictor information from datamodel 
def getCategoricalFeatureInfo(dm,lookup,predictors):
    info = {}
    for i in range(0,len(predictors)):
        predictor = predictors[i]
        predictor_index = lookup[predictor]
        if isinstance(dm[predictor_index],list):
            info[i] = len(dm[predictor_index])
    return info

# convert dataframe to an RDD containing LabeledPoint
lps = df.rdd.map(lambda row: row2LabeledPoint(metadata,lookup,target,predictors,row))

treeModel = DecisionTree.trainClassifier(
    lps,
    numClasses=predictorClassCount,
    categoricalFeaturesInfo=getCategoricalFeatureInfo(metadata, lookup, predictors),
    impurity='gini',
    maxDepth=5,
    maxBins=100)

_outputPath = cxt.createTemporaryFolder()
treeModel.save(cxt.getSparkContext(), _outputPath)
cxt.setModelContentFromPath("TreeModel", _outputPath)
cxt.setModelContentFromString("model.dm",json.dumps(metadata), mimeType="application/json")\
   .setModelContentFromString("model.structure",treeModel.toDebugString())

"""

node.setPropertyValue("python_build_syntax", build_script)

Przykład w języku R

node.setPropertyValue("syntax_type", "R")
node.setPropertyValue("r_build_syntax", """modelerModel <- lm(modelerData$Na~modelerData$K,modelerData)
modelerDataModel
modelerModel 
""")
Tabela 1. właściwości węzła extensionmodelnode
Właściwości węzła extensionmodelnode Wartości Opis właściwości
syntax_type R Python Określ, który skrypt ma być uruchamiany: R lub Python (domyślnie R jest wartością domyślną).
r_build_syntax łańcuch Komendy skryptu R do budowy modelu.
r_score_syntax łańcuch Komendy skryptu R realizujące ocenę modelu.
python_build_syntax łańcuch Komendy skryptu Python realizujące ocenę modelu.
python_score_syntax łańcuch Komendy skryptu Python realizujące ocenę modelu.
convert_flags StringsAndDoubles
LogicalValues
Opcja przekształcania zmiennych typu flaga.
convert_missing Flaga Opcja przekształcania brakujących wartości w RNA.
convert_datetime Flaga Opcja przekształcania zmiennych o formacie daty lub daty/czasu na formaty daty/czasu języka R.
convert_datetime_class
POSIXct

POSIXlt
Opcje określające format docelowy, na który przekształcane są zmienne w formacie daty i daty/czasu.
output_html Flaga Opcja wyświetlania wykresów w modelu użytkowym R.
output_text Flaga Opcja zapisu danych wyjściowych w konsoli R do modelu użytkowego R.
Generative AI search and answer
These answers are generated by a large language model in watsonx.ai based on content from the product documentation. Learn more