Translation not up to date
Můžete použít generalizovaný lineární model, lineární regresi, lineární podporu vektorové počítače, náhodné stromy nebo CHAID SPSS prediktivní analýzy algoritmů v přenosných počítačích.
Generalizovaný lineární model
Generalizovaný lineární model (GLE) je běžně používaný analytický algoritmus pro různé typy dat. Zahrnuje nejen široce používané statistické modely, jako je lineární regrese pro normálně distribuované cíle, logistické modely pro binární nebo mnohohomické cíle, a logistické modely pro počítání dat, ale také zahrnuje mnoho užitečných statistických modelů prostřednictvím své velmi obecné formulace modelu. Kromě sestavení modelu poskytuje zobecněný lineární model další užitečné funkce, jako je výběr proměnných, automatický výběr funkcí distribuce a odkazů a statistiky vyhodnocení modelu. Tento model má možnosti pro regularizaci, jako je LASSO, regresní regrese, elastická síť atd., a je také schopen zpracovat velmi široká data.
Další podrobnosti o tom, jak vybrat funkci rozdělení a odkazů, viz Kombinace distribuce a propojení funkcí.
Příklad kódu 1:
Tento příklad ukazuje nastavení GLE se zadanou funkcí distribuce a propojení, uvedené efekty, zachycení, vodivou křivku ROC a tisk matice korelace. Tento scénář sestaví model a poté vyhodnotí model.
Příklad Python :
from spss.ml.classificationandregression.generalizedlinear import GeneralizedLinear
from spss.ml.classificationandregression.params.effect import Effect
gle1 = GeneralizedLinear(). \
setTargetField("Work_experience"). \
setInputFieldList(["Beginning_salary", "Sex_of_employee", "Educational_level", "Minority_classification", "Current_salary"]). \
setEffects([
Effect(fields=["Beginning_salary"], nestingLevels=[0]),
Effect(fields=["Sex_of_employee"], nestingLevels=[0]),
Effect(fields=["Educational_level"], nestingLevels=[0]),
Effect(fields=["Current_salary"], nestingLevels=[0]),
Effect(fields=["Sex_of_employee", "Educational_level"], nestingLevels=[0, 0])]). \
setIntercept(True). \
setDistribution("NORMAL"). \
setLinkFunction("LOG"). \
setAnalysisType("BOTH"). \
setConductRocCurve(True)
gleModel1 = gle1.fit(data)
PMML = gleModel1.toPMML()
statXML = gleModel1.statXML()
predictions1 = gleModel1.transform(data)
predictions1.show()
Příklad kódu 2:
Tento příklad ukazuje nastavení GLE s neurčenou funkcí distribuce a propojení a výběr proměnných pomocí dopředné postupné metody. Tento scénář používá dopřednou krokovou metodu k výběru distribuce, funkce propojení a efektů, poté sestavení a skóre modelu.
Příklad Python :
from spss.ml.classificationandregression.generalizedlinear import GeneralizedLinear
from spss.ml.classificationandregression.params.effect import Effect
gle2 = GeneralizedLinear(). \
setTargetField("Work_experience"). \
setInputFieldList(["Beginning_salary", "Sex_of_employee", "Educational_level", "Minority_classification", "Current_salary"]). \
setEffects([
Effect(fields=["Beginning_salary"], nestingLevels=[0]),
Effect(fields=["Sex_of_employee"], nestingLevels=[0]),
Effect(fields=["Educational_level"], nestingLevels=[0]),
Effect(fields=["Current_salary"], nestingLevels=[0])]). \
setIntercept(True). \
setDistribution("UNKNOWN"). \
setLinkFunction("UNKNOWN"). \
setAnalysisType("BOTH"). \
setUseVariableSelection(True). \
setVariableSelectionMethod("FORWARD_STEPWISE")
gleModel2 = gle2.fit(data)
PMML = gleModel2.toPMML()
statXML = gleModel2.statXML()
predictions2 = gleModel2.transform(data)
predictions2.show()
Příklad kódu 3:
Tento příklad ukazuje nastavení GLE s neurčenou distribucí, zadanou funkcí propojení a výběr proměnných pomocí metody LASSO, s výběrem dvoucestných interakcí interakce a automatických parametrů sankcí. Tento scénář detekuje dvousměrnou interakci pro efekty, pak používá metodu LASSO k výběru distribuce a efektů pomocí automatického výběru parametru penalty, pak sestavení a skóre modelu.
Příklad Python :
from spss.ml.classificationandregression.generalizedlinear import GeneralizedLinear
from spss.ml.classificationandregression.params.effect import Effect
gle3 = GeneralizedLinear(). \
setTargetField("Work_experience"). \
setInputFieldList(["Beginning_salary", "Sex_of_employee", "Educational_level", "Minority_classification", "Current_salary"]). \
setEffects([
Effect(fields=["Beginning_salary"], nestingLevels=[0]),
Effect(fields=["Sex_of_employee"], nestingLevels=[0]),
Effect(fields=["Educational_level"], nestingLevels=[0]),
Effect(fields=["Current_salary"], nestingLevels=[0])]). \
setIntercept(True). \
setDistribution("UNKNOWN"). \
setLinkFunction("LOG"). \
setAnalysisType("BOTH"). \
setDetectTwoWayInteraction(True). \
setUseVariableSelection(True). \
setVariableSelectionMethod("LASSO"). \
setUserSpecPenaltyParams(False)
gleModel3 = gle3.fit(data)
PMML = gleModel3.toPMML()
statXML = gleModel3.statXML()
predictions3 = gleModel3.transform(data)
predictions3.show()
Lineární regrese
Model lineární regrese analyzuje vztah prediktivního vztahu mezi souvislým cílem a jedním nebo více prediktory, které mohou být spojité nebo kategorické.
Mezi funkce lineárního regresního modelu patří automatická detekce vlivu interakce, dopředný výběr modelu, kontrola diagnostiky a neobvyklá detekce kategorie založené na odhadnutých odhadech středních hodnot (EMMEANS).
Příklad kódu:
Příklad Python :
from spss.ml.classificationandregression.linearregression import LinearRegression
le = LinearRegression(). \
setTargetField("target"). \
setInputFieldList(["predictor1", "predictor2", "predictorn"]). \
setDetectTwoWayInteraction(True). \
setVarSelectionMethod("forwardStepwise")
leModel = le.fit(data)
predictions = leModel.transform(data)
predictions.show()
Vektorový počítač lineární podpory
Lineární podpora vektorového počítače (LSVM) poskytuje metodu s dohledem nad dohledem, která generuje vstupní mapovací funkce ze sady označených výukových dat. Funkcí mapování může být buď funkce klasifikace, nebo regresní funkce. LSVM je navržen tak, aby řešil problémy s large-scale, pokud jde o počet záznamů a počet proměnných (parametrů). Jeho prostor funkcí je stejný jako vstupní prostor daného problému a dokáže zpracovat řídké údaje, kde je průměrný počet nenulových prvků v jednom záznamu malý.
Příklad kódu:
Příklad Python :
from spss.ml.classificationandregression.linearsupportvectormachine import LinearSupportVectorMachine
lsvm = LinearSupportVectorMachine().\
setTargetField("BareNuc").\
setInputFieldList(["Clump", "UnifSize", "UnifShape", "MargAdh", "SingEpiSize", "BlandChrom", "NormNucl", "Mit", "Class"]).\
setPenaltyFunction("L2")
lsvmModel = lsvm.fit(df)
predictions = lsvmModel.transform(data)
predictions.show()
Náhodné stromy
Náhodné stromy jsou silným přístupem pro generování silných (přesných) prediktivních modelů. Je to srovnatelné a někdy lepší než jiné metody pro klasifikaci nebo regresní problémy, které jsou ve stavu techniky.
Náhodný stromy je model kompletu skládající se z několika stromů podobných CART. Každý strom roste na zaváděcí ukázce, která je získána odběrem vzorků původních datových případů s náhradou. Navíc během stromového růstu je pro každý uzel vybrána nejlepší dělicí proměnná z určeného menšího počtu proměnných, které se vykreslují náhodně z celé množné sady proměnných. Každý strom roste v největší možné míře a není zde žádné pročištění. Náhodné stromy v bodování spojují individuální stromová skóre většinovým hlasováním (pro klasifikaci) nebo průměrem (pro regresi).
Příklad kódu:
Příklad Python :
from spss.ml.classificationandregression.ensemble.randomtrees import RandomTrees
# Random trees required a "target" field and some input fields. If "target" is continuous, then regression trees will be generate else classification .
# You can use the SPSS Attribute or Spark ML Attribute to indicate the field to categorical or continuous.
randomTrees = RandomTrees(). \
setTargetField("target"). \
setInputFieldList(["feature1", "feature2", "feature3"]). \
numTrees(10). \
setMaxTreeDepth(5)
randomTreesModel = randomTrees.fit(df)
predictions = randomTreesModel.transform(scoreDF)
predictions.show()
ŘETĚZIKO
CHAID nebo chí-kvadrát automatická detekce interakcí je klasifikační metodou pro sestavení rozhodovacích stromů pomocí statistiky chí kvadrát pro identifikaci optimálních dělení. K dispozici je také rozšíření vztahující se k regresním problémům.
CHAID nejprve zkoumá křížové tabulky mezi jednotlivými vstupními poli a cílem a testy významnosti pomocí testu nezávislosti chí kvadrát. Je-li více než jeden z těchto vztahů statisticky významný, CHAID vybere vstupní pole, které je nejzávažnější (nejmenší hodnota p). Má-li vstup více než dvě kategorie, jsou porovnávány a kategorie, které nevykazují žádné rozdíly v výsledku, se sbalí dohromady. To se provádí postupně spojující dvojice kategorií zobrazující nejméně významný rozdíl. Tato kategorie-sloučení se zastaví, když se všechny zbývající kategorie liší na určené úrovni testování. Pro nominální vstupní pole lze sloučit všechny kategorie; pro pořadové číslo lze sloučit pouze souvislé kategorie. Nepřetržitá vstupní pole jiná než cíl nemohou být použita přímo; nejprve musí být tato pole rozdělena do ordinálních polí.
Vyčerpávající CHAID je modifikace CHAID, která dělá důkladnější úlohu zkoumání všech možných rozdělení pro každý prediktor, ale trvá déle.
Příklad kódu:
Příklad Python :
from spss.ml.classificationandregression.tree.chaid import CHAID
chaid = CHAID(). \
setTargetField("salary"). \
setInputFieldList(["educ", "jobcat", "gender"])
chaidModel = chaid.fit(data)
pmmlStr = chaidModel.toPMML()
statxmlStr = chaidModel.statXML()
predictions = chaidModel.transform(data)
predictions.show()
Nadřízené téma: Algoritmy prediktivních analýz produktuSPSS