Deskriptive ermöglichen eine effiziente Berechnung der univariaten und bivariaten Statistiken sowie automatisierte Datenaufbereitungsfunktionen für umfangreiche Datenmengen. Diese Komponente ist vielseitig einsetzbar bei Datenprofilerstellung, Datenexploration und Datenaufbereitung für nachfolgende Modellierungsanalysen.
Zu den zentralen statistischen Merkmalen gehören grundlegende univariate und bivariate statistische Auswertungen, Statistiken zu univariaten Reihenfolgen, die Erstellung von Metadateninformationen aus Rohdaten, Statistiken zum Visualisieren von Einzelfeldern und Feldpaaren, Datenaufbereitungsfunktionen sowie die Bewertung der Qualität und Interessantheit von Daten. Dies kann die erforderliche Funktionalität für automatisierte Datenverarbeitung, Benutzerinteraktivität und Einblicke in einzelne Felder oder die Beziehungen zwischen den Feldpaaren für ein angegebenes Ziel wirkungsvoll unterstützen.
Python-Beispielcode:
from spss.ml.datapreparation.descriptives import Descriptives
de = Descriptives(). \
setInputFieldsList(["Field1", "Field2"]). \
setTargetFieldList(["Field3"]). \
setTrimBlanks("TRIM_BOTH")
deModel = de.fit(df)
PMML = deModel.toPMML()
statXML = deModel.statXML()
predictions = deModel.transform(df)
predictions.show()
Auswahlstrategie für deskriptive Statistiken
Wenn die Anzahl der Feldpaare zu groß ist (z. B. größer als der Standardwert 1000), wird SelectionStrategy verwendet, um die Anzahl der Paare zu begrenzen, für die bivariate Statistiken berechnet werden. Die Strategie umfasst 2 Schritte:
- Begrenzen Sie die Anzahl der Paare basierend auf den univariaten Statistiken.
- Begrenzen Sie die Anzahl der Paare basierend auf den zentralen bivariaten Statistiken für die Zuordnung.
Beachten Sie, dass das Paar unter den folgenden Bedingungen immer eingeschlossen wird:
- Das Paar besteht aus einem Prädiktorfeld und einem Zielfeld.
- Das Paar aus Prädiktoren und Zielen wird durchgesetzt.
Vorverarbeitung von Smart Data
Die SDP-Engine (SDP = Smart Data Preprocessing) ist eine Analysekomponente für die Datenaufbereitung. Sie besteht aus drei separaten Modulen: Relevanzanalyse, Relevanzanalyse und Redundanzanalyse sowie Integration intelligenter Metadaten (SMD).
Anhand der Daten mit regulären Feldern, Listenfeldern und Zuordnungsfeldern wertet die Relevanzanalyse die Zuordnungen von Eingabefeldern zu Zielen aus und wählt eine angegebene Anzahl von Feldern für die nachfolgende Analyse aus. Dabei werden Listenfelder und Zuordnungsfelder erweitert und die ausgewählten Felder in ein das übliche spaltenbasierte Format extrahiert.
Wegen ihrer Effizienz wird die Relevanzanalyse auch verwendet, um die große Anzahl der Felder in breiten Datenbeständen auf ein moderates Niveau, das den Einsatz traditionellre Analysen erlaubt.
SmartDataPreprocessingRelevanceAnalysis exportiert die folgenden Ausgaben:
- JSON-Datei mit Modellinformationen
- neue spaltenbasierte Daten
- das zugehörige Datenmodell
Python-Beispielcode:
from spss.ml.datapreparation.smartdatapreprocessing import SmartDataPreprocessingRelevanceAnalysis
sdpRA = SmartDataPreprocessingRelevanceAnalysis(). \
setInputFieldList(["holderage", "vehicleage", "claimamt"]). \
setTargetFieldList(["vehiclegroup", "nclaims"]). \
setMaxNumTarget(3). \
setInvalidPairsThresEnabled(True). \
setRMSSEThresEnabled(True). \
setAbsVariCoefThresEnabled(True). \
setInvalidPairsThreshold(0.7). \
setRMSSEThreshold(0.7). \
setAbsVariCoefThreshold(0.05). \
setMaxNumSelFields(2). \
setConCatRatio(0.3). \
setFilterSelFields(True)
predictions = sdpRA.transform(data)
predictions.show()
Konverter für spärliche Daten (Sparse Data Convertor)
Der Konverter für spärliche Daten (Sparse Data Convertor - SDC) konvertiert reguläre Datenfelder in Listenfelder. Sie müssen nur die Felder angeben, die in Listenfelder umgewandelt werden sollen. Anschließend führt SDC die Felder gemäß dem zugehörigen Messniveau zusammen. Dabei werden bis zu drei Arten von Listenfeldern generiert: stetiges Listenfeld, kategoriales Listenfeld und Zuordnungsfeld.
Python-Beispielcode:
from spss.ml.datapreparation.sparsedataconverter import SparseDataConverter
sdc = SparseDataConverter(). \
setInputFieldList(["Age", "Sex", "Marriage", "BP", "Cholesterol", "Na", "K", "Drug"])
predictions = sdc.transform(data)
predictions.show()
Klassierung
Sie können diese Funktion verwenden, um ein oder mehrere neue klassierte Felder abzuleiten oder um die Klassendefinitionen abzurufen, mit denen die Klassenwerte bestimmt werden.
Python-Beispielcode:
from spss.ml.datapreparation.binning.binning import Binning
binDefinition = BinDefinitions(1, False, True, True, [CutPoint(50.0, False)])
binField = BinRequest("integer_field", "integer_bin", binDefinition, None)
params = [binField]
bining = Binning().setBinRequestsParam(params)
outputDF = bining.transform(inputDF)
Hexadezimalklassierung
Mit dieser Funktion können Sie hexagonale Klassen berechnen und zwei Feldern zuordnen.
Python-Beispielcode:
from spss.ml.datapreparation.binning.hexbinning import HexBinning
from spss.ml.param.binningsettings import HexBinningSetting
params = [HexBinningSetting("field1_out", "field1", 5, -1.0, 25.0, 5.0),
HexBinningSetting("field2_out", "field2", 5, -1.0, 25.0, 5.0)]
hexBinning = HexBinning().setHexBinRequestsParam(params)
outputDF = hexBinning.transform(inputDF)
Komplexe Stichprobenentnahme
Die Funktion complexSampling wählt eine pseudozufällige Stichprobe von Datensätzen aus einer Datenquelle aus.
Die Funktion complexSampling führt eine geschichtete Stichprobenentnahme ankommender Daten aus und verwendet dabei die einfache exakte Stichprobenentnahme und die einfache proportionale Stichprobenentnahme. Die Schichtungsfelder werden als Eingabe angegeben und auch die Stichprobenanzahl oder das Stichprobenverhältnis jeder Schicht, für die Stichproben erstellt werden sollen, muss angegeben werden. Optional kann die Datensatzanzahl für jede Schicht angegeben werden, um die Leistung zu verbessern.
Python-Beispielcode:
from spss.ml.datapreparation.sampling.complexsampling import ComplexSampling
from spss.ml.datapreparation.params.sampling import RealStrata, Strata, Stratification
transformer = ComplexSampling(). \
setRandomSeed(123444). \
setRepeatable(True). \
setStratification(Stratification(["real_field"], [
Strata(key=[RealStrata(11.1)], samplingCount=25),
Strata(key=[RealStrata(2.4)], samplingCount=40),
Strata(key=[RealStrata(12.9)], samplingRatio=0.5)])). \
setFrequencyField("frequency_field")
sampled = transformer.transform(unionDF)
Anzahl und Stichprobe
Die Funktion countAndSample erzeugt eine pseudozufällige Stichprobe mit einer Größe, die ungefähr gleich der Eingabe 'samplingCount' ist.
Das Sampling wird durch den Aufruf der SamplingComponent mit einem Sampling-Verhältnis erreicht, das als 'samplingCount / totalRecords' berechnet wird, wobei 'totalRecords' die Anzahl der Datensätze der eingehenden Daten ist.
Python-Beispielcode:
from spss.ml.datapreparation.sampling.countandsample import CountAndSample
transformer = CountAndSample().setSamplingCount(20000).setRandomSeed(123)
sampled = transformer.transform(unionDF)
MR-Stichprobenentnahme
Die Funktion mrsampling wählt eine pseudozufällige Stichprobe von Datensätzen aus einer Datenquelle mit einem angegebenen Stichprobenverhältnis aus. Die Größe der Stichprobe ist ungefähr der angegebene Anteil der Gesamtzahl von Datensätzen, die einem optionalen Maximum unterliegt. Die Gruppe der Datensätze und ihre Gesamtzahl variiert mit dem Startwert für Zufallszahlen. Jeder Datensatz in der Datenquelle kann mit derselben Wahrscheinlichkeit ausgewählt werden.
Python-Beispielcode:
from spss.ml.datapreparation.sampling.mrsampling import MRSampling
transformer = MRSampling().setSamplingRatio(0.5).setRandomSeed(123).setDiscard(True)
sampled = transformer.transform(unionDF)
Stichprobenentnahmemodell
Die Funktion 'samplingModel' wählt einen pseudozufälligen Prozentsatz einer Teilsequenz von Eingabedatensätzen aus, die als jeder n-te Datensatz für eine angegebene Schrittgröße N definiert ist. Der Gesamtumfang der Stichprobe kann optional durch ein Maximum begrenzt sein.
Ist die Schrittgröße 1, ist die Untersequenz die gesamte Sequenz der Eingabedatensätze. Ist das Stichprobenverhältnis 1.0, wird die Auswahl deterministisch, nicht pseudozufällig.
Beachten Sie, dass die Funktion samplingModel die Auswahlkriterien bei verteilten Daten unabhängig auf jede Datenaufteilung anwendet. Der maximale Stichprobenumfang (falls vorhanden) gilt unabhängig für jede Aufteilung und nicht für die gesamte Datenquelle. Die Untersequenz beginnt am Anfang jeder Aufteilung neu.
Python-Beispielcode:
from spss.ml.datapreparation.sampling.samplingcomponent import SamplingModel
transformer = SamplingModel().setSamplingRatio(1.0).setSamplingStep(2).setRandomSeed(123).setDiscard(False)
sampled = transformer.transform(unionDF)
Sequenzielle Stichprobenentnahme
Die Funktion 'sequentialSampling' ähnelt der Funktion 'samplingModel'. Dabei wird ebenfalls ein pseudozufälliger Prozentsatz der Teilsequenz von Eingabedatensätzen ausgewählt, die als jeder n-te Datensatz für eine angegebene Schrittgröße N definiert ist. Der Gesamtumfang der Stichprobe kann optional durch ein Maximum begrenzt sein.
Ist die Schrittgröße 1, ist die Untersequenz die gesamte Sequenz der Eingabedatensätze. Ist das Stichprobenverhältnis 1.0, wird die Auswahl deterministisch, nicht pseudozufällig. Der Hauptunterschied zwischen sequentialSampling und samplingModel besteht darin, dass die Funktion samplingModel die Auswahlkriterien bei verteilten Daten unabhängig auf jede Datenaufteilung anwendet, während die Funktion samplingModel die Auswahlkriterien unabhängig auf jede Datenaufteilung anwendet.
Python-Beispielcode:
from spss.ml.datapreparation.sampling.samplingcomponent import SequentialSampling
transformer = SequentialSampling().setSamplingRatio(1.0).setSamplingStep(2).setRandomSeed(123).setDiscard(False)
sampled = transformer.transform(unionDF)
Übergeordnetes Thema: SPSS Vorhersageanalysealgorithmen