Verfahren zur Merkmalstransformation
Umwandlungen sind wichtige Vorverarbeitungsschritte, die Daten in ein für Modellschulung und -analyse geeignetes Format konvertieren oder skalieren und so eine optimale Leistung und Genauigkeit gewährleisten. Dieses Dokument dient als ergänzende Syntaxressource und liefert detaillierte Details zu den wichtigsten Funktionstransformationstechniken für die Datenvorverarbeitung.
Modelle für maschinelles Lernen können Zeichenfolgenwerte oder Nullwerte nicht direkt verarbeiten, was die Vorverarbeitung von Daten unerlässlich macht. In diesem Handbuch wird erläutert, wie Sie verschiedene Transformationen verwenden können, um fehlende Werte zuzuordnen, kategoriale Daten in numerische Formate zu konvertieren und Funktionsskalierungstechniken wie One-Hot-Kodierung und Vektorisierung anzuwenden. Diese Methoden ermöglichen es Modellen, die Daten effektiv zu interpretieren und daraus zu lernen, was letztendlich die Leistung verbessert.
Automatische Merkmalstransformation automatic-transformations
Wenn Sie die TRANSFORM
-Klausel in Ihrem CREATE MODEL
-Befehl überspringen, wird die Funktionstransformation automatisch durchgeführt. Die automatische Datenvorverarbeitung umfasst einen Nullersatz und Standardfunktionstransformationen (basierend auf dem Datentyp). Numerische Spalten und Textspalten werden automatisch berechnet. Anschließend werden Merkmalstransformationen durchgeführt, um sicherzustellen, dass die Daten in einem für das Modell-Training des maschinellen Lernens geeigneten Format vorliegen. Dieser Prozess umfasst fehlende Datenimputation und kategoriale, numerische und boolesche Transformationen.
In den folgenden Tabellen wird erläutert, wie verschiedene Datentypen verarbeitet werden, wenn die TRANSFORM
-Klausel während des CREATE MODEL
-Befehls weggelassen wird.
Null-Ersatz automatic-null-replacement
ml_unknown
-Schlüsselwort ersetzt.FALSE
Wert ersetzt.Funktionstransformation automatic-feature-transformation
Beispiel
CREATE model modelname options(model_type='logistic_reg', label='rating') AS SELECT * FROM movie_rating;
Manuelle Funktionstransformationen manual-transformations
Um die benutzerdefinierte Datenvorverarbeitung in Ihrer CREATE MODEL
-Anweisung zu definieren, verwenden Sie die TRANSFORM
-Klausel in Kombination mit einer beliebigen Anzahl der verfügbaren Umwandlungsfunktionen. Diese manuellen Vorverarbeitungsfunktionen können auch außerhalb der TRANSFORM
-Klausel verwendet werden. Alle im Abschnitt Transformator unten“ beschriebenen Transformationenzur manuellen Vorverarbeitung der Daten verwendet werden.
Hauptmerkmale key-characteristics
Bei der Definition der Vorverarbeitungsfunktionen sind die folgenden Hauptmerkmale der Funktionstransformation zu berücksichtigen:
-
Syntax:
TRANSFORM(functionName(colName, parameters) <aliasNAME>)
- Der Aliasname ist in der Syntax obligatorisch. Sie müssen einen Aliasnamen angeben, da sonst die Abfrage fehlschlägt.
-
Parameter: Die Parameter sind Positionsargumente. Das bedeutet, dass jeder Parameter nur bestimmte Werte annehmen kann und alle vorangehenden Parameter angeben muss, wenn benutzerdefinierte Werte bereitgestellt werden. Einzelheiten dazu, welche Funktion welches Argument verwendet, finden Sie in der entsprechenden Dokumentation.
-
Kettentransformatoren: Die Ausgabe eines Transformators kann als Eingabe für einen anderen Transformator verwendet werden.
-
Funktionsnutzung: Die letzte Merkmalstransformation wird als Feature des Modells für maschinelles Lernen verwendet.
Beispiel
CREATE MODEL modelname
TRANSFORM(
string_imputer(language, 'adding_null') AS imp_language,
numeric_imputer(users_count, 'mode') AS imp_users_count,
string_indexer(imp_language) AS si_lang,
vector_assembler(array(imp_users_count, si_lang, watch_minutes)) AS features
)
OPTIONS(MODEL_TYPE='logistic_reg', LABEL='rating')
AS SELECT * FROM df;
Verfügbare Umwandlungen available-transformations
Es gibt 19 verfügbare Transformationen. Diese Transformationen sind unterteilt in Allgemeine Transformationen, Numerische Transformationen, Kategoriale Transformationen und Texttransformationen.
Allgemeine Transformationen general-transformations
Lesen Sie diesen Abschnitt für Details zu den Transformatoren, die für eine Vielzahl von Datentypen verwendet werden. Diese Informationen sind wichtig, wenn Sie Umwandlungen anwenden müssen, die nicht spezifisch für kategoriale oder textuelle Daten sind.
numerischer Computer numeric-imputer
Der Transformator Numerischer) vervollständigt fehlende Werte in einem Datensatz. Dabei wird entweder der Mittelwert, Median oder Modus der Spalten verwendet, in denen sich die fehlenden Werte befinden. Die Eingabespalten sollten entweder DoubleType
oder FloatType
sein. Weitere Informationen und Beispiele finden Sie in der Dokumentation zum -Algorithmus.
Datentypen
- Eingabedatentyp: Numerisch
- Ausgabedatentyp: Numerisch
Definition
transformer(numeric_imputer(hour, 'mean') hour_imputed)
Parameter
STRATEGY
mean
, median
, mode
].Beispiel vor der Imputation
Beispiel nach Imputation (mit Mittelwertstrategie)
Streichrechner string-imputer
Der String-) vervollständigt fehlende Werte in einem Datensatz mithilfe einer vom Benutzer als Funktionsargument bereitgestellten Zeichenfolge. Die Eingabe- und Ausgabespalten sollten vom string
Datentyp sein.
Datentypen
- Eingabedatentyp: Zeichenfolge
- Ausgabedatentyp: Zeichenfolge
Definition
transform(string_imputer(name, 'unknown_name') as name_imputed)
Parameter
NULL_REPLACEMENT
Beispiel vor der Imputation
Beispiel nach der Imputation (mit 'ml_unknown' als Ersatz)
Boolescher Rechner boolean-imputer
Der boolesche Computer-Transformator vervollständigt fehlende Werte in einem Datensatz für eine boolesche Spalte. Die Eingabe- und Ausgabespalten müssen vom Boolean
Typ sein.
Datentypen
- Eingabedatentyp: Boolean
- Ausgabedatentyp: Boolean
Definition
transform(boolean_imputer(name, true) as name_imputed)
Parameter
NULL_REPLACEMENT
true
, false
].Beispiel vor der Imputation
Beispiel nach der Imputation (mit „true“ als Ersatz)
Vektor-Assembler vector-assembler
Der VectorAssembler
-Transformator kombiniert eine bestimmte Liste von Eingabespalten zu einer einzigen Vektorspalte, was die Verwaltung mehrerer Funktionen in Modellen für maschinelles Lernen erleichtert. Dies ist besonders nützlich für die Zusammenführung von Rohmerkmalen und von verschiedenen Merkmalstransformatoren generierten Merkmalen zu einem einheitlichen Merkmalsvektor. VectorAssembler
akzeptiert Eingabespalten von numerischen, booleschen und Vektortypen. In jeder Zeile werden die Werte der Eingabespalten zu einem Vektor in der angegebenen Reihenfolge verkettet.
Datentypen
- Eingabedatentyp:
array[string]
(Spaltennamen mit numerischen/Array[numerischen ]) - Ausgabedatentyp:
Vector[double]
Definition
transform(vector_assembler(id, hour, mobile, userFeatures) as features)
Parameter
Beispiel vor der Umwandlung
Beispiel nach der Umwandlung
Numerische Transformationen numeric-transformations
Lesen Sie diesen Abschnitt, um mehr über die verfügbaren Transformatoren zur Verarbeitung und Skalierung numerischer Daten zu erfahren. Diese Transformatoren sind erforderlich, um numerische Funktionen in Ihren Datensätzen zu verarbeiten und zu optimieren.
Binarisierer binarizer
Der Binarizer
-Transformator wandelt numerische Merkmale in binäre (0/1) Merkmale durch einen Prozess, der als Binarisierung bezeichnet wird. Funktionswerte, die größer als der angegebene Schwellenwert sind, werden in 1,0 konvertiert, während Werte, die gleich oder kleiner als der Schwellenwert sind, in 0,0 konvertiert werden. Der Binarizer
unterstützt sowohl Vector
- als auch Double
für die Eingabespalte.
Datentypen
- Eingabedatentyp: Numerische Spalte
- Ausgabedatentyp: Numerisch
Definition
transform(numeric_imputer(rating, 'mode') rating_imp, binarizer(rating_imp) rating_binarizer)
Parameter
THRESHOLD
Beispieleingabe vor der Binarisierung
Beispielausgabe nach der Binarisierung (Standardschwellenwert 0,0)
Definition mit benutzerdefiniertem Schwellenwert
transform(numeric_imputer(age, 'mode') age_imp, binarizer(age_imp, 14.0) age_binarizer)
Beispielausgabe nach der Binarisierung (mit einem Schwellenwert von 14,0)
Eimer bucketizer
Der Bucketizer
-Transformator wandelt eine Spalte mit fortlaufenden Funktionen in eine Spalte mit Funktions-Buckets um, basierend auf benutzerspezifizierten Schwellenwerten. Dieser Prozess ist nützlich für die Segmentierung kontinuierlicher Daten in separate Behälter oder Behälter. Die Bucketizer
erfordert einen splits
, der die Grenzen der Buckets definiert.
Datentypen
- Eingabedatentyp: Numerische Spalte
- Ausgabedatentyp: Numerisch (gebundene Werte)
Definition
TRANSFORM(binarizer(time_spent, 5.0) as binary, bucketizer(course_duration, array(-440.5, 0.0, 150.0, 1000.7)) as buck_features, vector_assembler(array(buck_features, users_count, binary)) as vec_assembler, max_abs_scaler(vec_assembler) as maxScaling, min_max_scaler(maxScaling) as features)
Parameter
splits
n+1
Splits gibt es n
Eimer. Die Aufspaltung muss in steigender Reihenfolge erfolgen, und der Bereich (x,y) wird für jeden Behälter mit Ausnahme des letzten verwendet, der y enthält.Beispiele für Aufspaltungen
- Array(Double.NegativeInfinity, 0.0, 1.0, Double.PositiveInfinity)
- Array(0.0, 1.0, 2.0)
Die Aufspaltung sollte den gesamten Bereich doppelter Werte abdecken. Andernfalls werden Werte außerhalb der angegebenen Aufspaltung als Fehler behandelt.
Beispieltransformation
In diesem Beispiel wird eine Spalte mit fortlaufenden Elementen (course_duration
) genommen, gemäß den bereitgestellten splits
abgelegt und dann die resultierenden Behälter mit anderen Elementen zusammengestellt.
TRANSFORM(binarizer(time_spent, 5.0) as binary, bucketizer(course_duration, array(-440.5, 0.0, 150.0, 1000.7)) as buck_features, vector_assembler(array(buck_features, users_count, binary)) as vec_assembler, max_abs_scaler(vec_assembler) as maxScaling, min_max_scaler(maxScaling) as features)
MinMaxScaler minmaxscaler
Der MinMaxScaler
-Transformator skaliert jedes Feature in einem Datensatz mit Vektorzeilen in einen bestimmten Bereich neu, normalerweise [0, 1]. Dadurch wird sichergestellt, dass alle Funktionen gleichermaßen zum Modell beitragen. Dies ist besonders nützlich für Modelle, die empfindlich auf die Skalierung von Funktionen reagieren, wie z. B. Algorithmen auf der Basis von Gradientenabstiegen. Die MinMaxScaler
arbeitet mit den folgenden Parametern:
- min: Die Untergrenze der Transformation, die für alle Funktionen gilt. Der Standardwert ist
0.0
. - max: Die obere Grenze der Transformation, die für alle Funktionen gilt. Der Standardwert ist
1.0
.
Datentypen
- Eingabedatentyp:
Array[Double]
- Ausgabedatentyp:
Array[Double]
Definition
TRANSFORM(binarizer(time_spent, 5.0) as binary, bucketizer(course_duration, array(-440.5, 0.0, 150.0, 1000.7)) as buck_features, vector_assembler(array(buck_features, users_count, binary)) as vec_assembler, max_abs_scaler(vec_assembler) as maxScaling, min_max_scaler(maxScaling) as features)
Parameter
min
max
Beispieltransformation
In diesem Beispiel wird ein Satz von Funktionen umgewandelt und nach Anwendung mehrerer anderer Umwandlungen mit MinMaxScaler auf den angegebenen Bereich skaliert.
TRANSFORM(binarizer(time_spent, 5.0) as binary, bucketizer(course_duration, array(-440.5, 0.0, 150.0, 1000.7)) as buck_features, vector_assembler(array(buck_features, users_count, binary)) as vec_assembler, max_abs_scaler(vec_assembler) as maxScaling, min_max_scaler(maxScaling) as features)
MaxAbsScaler maxabsscaler
Der MaxAbsScaler
-Transformator skaliert jedes Merkmal in einem Datensatz von Vektorzeilen auf den Bereich [-1, ], indem er durch den maximalen absoluten Wert jedes Merkmals dividiert. Diese Transformation ist ideal, um eine geringe Dichte in Datensätzen mit sowohl positiven als auch negativen Werten zu erhalten, da dadurch die Daten nicht verschoben oder zentriert werden. Dadurch eignet sich die MaxAbsScaler
besonders für Modelle, die empfindlich auf die Skalierung von Eingabefunktionen reagieren, wie z.B. bei Abstandsberechnungen.
Datentypen
- Eingabedatentyp:
Array[Double]
- Ausgabedatentyp:
Array[Double]
Definition
TRANSFORM(binarizer(time_spent, 5.0) as binary, bucketizer(course_duration, array(-440.5, 0.0, 150.0, 1000.7)) as buck_features, vector_assembler(array(buck_features, users_count, binary)) as vec_assembler, max_abs_scaler(vec_assembler) as maxScaling)
Parameter
Beispieltransformation
In diesem Beispiel werden mehrere Transformationen, einschließlich MaxAbsScaler
, angewendet, um Funktionen in den Bereich [-1, 1 ].
TRANSFORM(binarizer(time_spent, 5.0) as binary, bucketizer(course_duration, array(-440.5, 0.0, 150.0, 1000.7)) as buck_features, vector_assembler(array(buck_features, users_count, binary)) as vec_assembler, max_abs_scaler(vec_assembler) as maxScaling)
Normalisierer normalizer
Der Normalizer
ist ein Transformator, der jeden Vektor in einem Datensatz von Vektorzeilen normalisiert, sodass er eine Einheitennorm hat. Dieses Verfahren gewährleistet eine gleichbleibende Skalierung, ohne die Richtung der Vektoren zu verändern. Diese Transformation ist besonders nützlich bei Modellen des maschinellen Lernens, die auf Entfernungsmessungen oder anderen vektorbasierten Berechnungen basieren, insbesondere wenn die Größe von Vektoren signifikant variiert.
Datentypen
- Eingabedatentyp:
array[double]
/vector[double]
- Ausgabedatentyp:
vector[double]
Definition
TRANSFORM(binarizer(time_spent, 5.0) as binary, bucketizer(course_duration, array(-440.5, 0.0, 150.0, 1000.7)) as buck_features, vector_assembler(array(buck_features, users_count, binary)) as vec_assembler, normalizer(vec_assembler, 3) as normalized)
Parameter
p
p-norm
an (z. B. 1-norm
, 2-norm
usw.).Beispieltransformation
In diesem Beispiel wird veranschaulicht, wie mehrere Umwandlungen, einschließlich der Normalizer
, angewendet werden, um einen Satz von Funktionen mithilfe der angegebenen p-norm
zu normalisieren.
TRANSFORM(binarizer(time_spent, 5.0) as binary, bucketizer(course_duration, array(-440.5, 0.0, 150.0, 1000.7)) as buck_features, vector_assembler(array(buck_features, users_count, binary)) as vec_assembler, normalizer(vec_assembler, 3) as normalized)
QuantileDiscretizer quantilediscretizer
Der QuantileDiscretizer
ist ein Transformator, der eine Spalte mit fortlaufenden Elementen in kategoriale Elemente mit Klassen umwandelt, wobei die Anzahl der Klassen durch den numBuckets
bestimmt wird. In einigen Fällen kann die tatsächliche Anzahl der Buckets kleiner als diese angegebene Anzahl sein, wenn zu wenige eindeutige Werte vorhanden sind, um genügend Quantile zu erstellen.
Diese Transformation ist besonders nützlich, um die Darstellung von kontinuierlichen Daten zu vereinfachen oder sie für Algorithmen vorzubereiten, die mit kategorialer Eingabe besser funktionieren.
Datentypen
- Eingabedatentyp: Numerische Spalte
- Ausgabedatentyp: Numerische Spalte (kategorial)
Definition
TRANSFORM(quantile_discretizer(hour, 3) as result)
Parameter
NUM_BUCKETS
Beispieltransformation
Dieses Beispiel zeigt, wie die QuantileDiscretizer
eine Spalte mit kontinuierlichen Funktionen (hour
) in drei kategoriale Behälter bindet.
TRANSFORM(quantile_discretizer(hour, 3) as result)
Beispiel vor und nach der Diskretisierung
StandardScaler standardscaler
Die StandardScaler
ist ein Transformator, der jedes Merkmal in einem Datensatz von Vektorzeilen normalisiert, sodass es eine Standardabweichung und/oder einen Nullmittelwert aufweist. Durch diesen Prozess eignen sich die Daten besser für Algorithmen, bei denen davon ausgegangen wird, dass die Merkmale auf einer gleichbleibenden Skala um null zentriert sind. Diese Transformation ist besonders wichtig für Modelle des maschinellen Lernens wie SVM, logistische Regression und neuronale Netzwerke, bei denen nicht standardisierte Daten zu Konvergenzproblemen oder geringerer Genauigkeit führen könnten.
Datentypen
- Eingabedatentyp: Vektor
- Ausgabedatentyp: Vektor
Definition
TRANSFORM(standard_scaler(feature) as ss_features)
Parameter
withStd
withMean
Beispieltransformation
Dieses Beispiel zeigt, wie der StandardScaler auf eine Reihe von Funktionen angewendet und diese mit der Standardabweichung der Einheit und dem Nullmittelwert normalisiert werden.
TRANSFORM(standard_scaler(feature) as ss_features)
Kategorieumwandlungen categorical-transformations
In diesem Abschnitt finden Sie einen Überblick über die verfügbaren Transformatoren zum Konvertieren und Vorverarbeiten kategorialer Daten für Modelle für maschinelles Lernen. Diese Umwandlungen wurden für Datenpunkte entwickelt, die anstelle von numerischen Werten einzelne Kategorien oder Beschriftungen darstellen.
StringIndexer stringindexer
Der StringIndexer
ist ein Transformator, der eine Zeichenfolgenspalte von Kennzeichnungen in eine Spalte numerischer Indizes kodiert. Die Indizes liegen im Bereich von 0 bis numLabels
und sind nach Kennzeichnungsfrequenz geordnet (die häufigste Kennzeichnung erhält einen Index von 0). Wenn die Eingabespalte numerisch ist, wird sie vor der Indizierung in eine Zeichenfolge umgewandelt. Nicht sichtbare Kennzeichnungen können dem numLabels
zugewiesen werden, wenn sie vom Benutzer angegeben wurden.
Diese Umwandlung ist besonders nützlich, um kategoriale Zeichenfolgendaten in numerische Formulare zu konvertieren, sodass sie für Modelle des maschinellen Lernens geeignet sind, die eine numerische Eingabe erfordern.
Datentypen
- Eingabedatentyp: Zeichenfolge
- Ausgabedatentyp: Numerisch
Definition
TRANSFORM(string_indexer(category) as si_category)
Parameter
StringIndexer
erfordert keine zusätzlichen Parameter für seinen Betrieb.Beispieltransformation
In diesem Beispiel wird gezeigt, wie die StringIndexer
auf eine kategoriale Funktion angewendet und in einen numerischen Index konvertiert wird.
TRANSFORM(string_indexer(category) as si_category)
OneHotEncoder onehotencoder
Der OneHotEncoder
ist ein Transformator, der eine Spalte von Kennzeichnungsindizes in eine Spalte von dünnen binären Vektoren umwandelt, wobei jeder Vektor höchstens einen einzigen Wert hat. Diese Kodierung ist besonders nützlich, um Algorithmen, die eine numerische Eingabe erfordern, wie z. B. die logistische Regression, die Möglichkeit zu geben, kategoriale Daten effektiv einzubinden.
Datentypen
- Eingabedatentyp: Numerisch
- Ausgabedatentyp: vector[int]
Definition
TRANSFORM(string_indexer(category) as si_category, one_hot_encoder(si_category) as ohe_category)
Parameter
Beispieltransformation
Dieses Beispiel zeigt, wie Sie die StringIndexer
zuerst auf eine kategoriale Funktion anwenden und dann die OneHotEncoder
verwenden, um die indizierten Werte in einen binären Vektor zu konvertieren.
TRANSFORM(string_indexer(category) as si_category, one_hot_encoder(si_category) as ohe_category)
Textumwandlungen textual-transformations
In diesem Abschnitt finden Sie Details zu den Transformatoren, die für die Verarbeitung und Konvertierung von Textdaten in Formate verfügbar sind, die von Modellen für maschinelles Lernen verwendet werden können. Dieser Abschnitt ist für Entwickler, die mit Daten in natürlicher Sprache und Textanalyse arbeiten, von entscheidender Bedeutung.
CountVectorizer countvectorizer
Der CountVectorizer
ist ein Transformator, der eine Sammlung von Textdokumenten in Vektoren der Token-Anzahl konvertiert und so spärliche Darstellungen basierend auf dem aus dem Korpus extrahierten Vokabular erzeugt. Diese Umwandlung ist wichtig, um Textdaten in ein numerisches Format zu konvertieren, das von Algorithmen für maschinelles Lernen wie LDA (Latent Dirichlet Allocation) verwendet werden kann, indem die Häufigkeit der Token in jedem Dokument dargestellt wird.
Datentypen
- Eingabedatentyp: Array[String]
- Ausgabedatentyp: Dichter Vektor
Definition
TRANSFORM(count_vectorizer(texts) as cv_output)
Parameter
VOCAB_SIZE
vocabSize
Begriffe berücksichtigt, die nach der Häufigkeit der Begriffe im gesamten Korpus sortiert sind.MIN_DOC_FREQ
MAX_DOC_FREQ
MIN_TERM_FREQ
Beispieltransformation
Dieses Beispiel zeigt, wie der CountVectorizer eine Auflistung von Text-Arrays in Vektoren der Token-Anzahl konvertiert und so eine spärliche Darstellung erzeugt.
TRANSFORM(count_vectorizer(texts) as cv_output)
Beispiel vor und nach der Vektorisierung
NGram ngram
Der NGram
ist ein Transformator, der eine Sequenz von n-Gramm erzeugt, wobei ein n-Gramm eine Sequenz von ('??') Token (typischerweise Wörter) für eine ganze Zahl (𝑛
) ist. Die Ausgabe besteht aus durch Leerzeichen getrennten Zeichenfolgen aus "??“ aufeinander folgenden Wörtern, die als Funktionen in Modellen für maschinelles Lernen verwendet werden können, insbesondere solche, die sich auf die Verarbeitung natürlicher Sprachen konzentrieren.
Datentypen
- Eingabedatentyp: Array[String]
- Ausgabedatentyp: array[string]
Definition
TRANSFORM(tokenizer(review_comments) as token_comments, ngram(token_comments, 3) as n_tokens)
Parameter
N
Beispieltransformation
Dieses Beispiel zeigt, wie der NGram-Transformator eine Sequenz von 3-Gramm aus einer Liste von Token erstellt, die aus Textdaten abgeleitet wurden.
TRANSFORM(tokenizer(review_comments) as token_comments, ngram(token_comments, 3) as n_tokens)
Beispiel vor und nach der n-Gramm-Transformation
StopwordsRemover stopwordsremover
Der StopWordsRemover
ist ein Transformator, der Stoppwörter aus einer Sequenz von Zeichenfolgen entfernt und dabei gängige Wörter herausfiltert, die keine signifikante Bedeutung haben. Als Eingabe dient eine Sequenz von Zeichenfolgen (z. B. die Ausgabe eines Tokenizers) und entfernt alle Stoppwörter, die durch den stopWords
-Parameter angegeben wurden.
Diese Umwandlung ist nützlich für die Vorverarbeitung von Textdaten und verbessert die Effektivität nachgelagerter Modelle für maschinelles Lernen, indem Wörter eliminiert werden, die nicht viel zur Gesamtbedeutung beitragen.
Datentypen
- Eingabedatentyp: Array[String]
- Ausgabedatentyp: array[string]
Definition
TRANSFORM(stop_words_remover(raw) as filtered)
Parameter
stopWords
Beispieltransformation
Dieses Beispiel zeigt, wie die StopWordsRemover
gängige englische Stoppwörter aus einer Liste von Token herausfiltert.
TRANSFORM(stop_words_remover(raw) as filtered)
Beispiel vor und nach dem Entfernen von Stoppwörtern
Beispiel mit benutzerdefinierten Stoppwörtern
Dieses Beispiel zeigt, wie eine benutzerdefinierte Liste von Stoppwörtern verwendet wird, um bestimmte Wörter aus den Eingabesequenzen herauszufiltern.
TRANSFORM(stop_words_remover(raw, array("red", "I", "had")) as filtered)
Beispiel vor und nach dem Entfernen benutzerdefinierter Stoppwörter
TF-IDF tf-idf
Der TF-IDF
(Begriff Frequency-Inverse Document Frequency) ist ein Transformator, der verwendet wird, um die Bedeutung eines Wortes in einem Dokument relativ zu einem Korpus zu messen. Term Frequency (TF) bezieht sich auf die Anzahl, wie oft ein Term (t) in einem Dokument angezeigt wird (d), während Document Frequency (DF) misst, wie viele Dokumente im Korpus (D) den Term (t) enthalten. Diese Methode wird im Text-Mining häufig verwendet, um den Einfluss häufig vorkommender Wörter wie „a“, „the“ und „of“ zu reduzieren, die wenig eindeutige Informationen enthalten.
Diese Umwandlung ist besonders wertvoll bei der Textsuche und bei der Verarbeitung natürlicher Sprachen, da sie der Bedeutung jedes Wortes innerhalb eines Dokuments und im gesamten Korpus einen numerischen Wert zuweist.
Datentypen
- Eingabedatentyp: Array[String]
- Ausgabedatentyp: vector[int]
Definition
create table td_idf_model transform(tokenizer(sentence) as token_sentence, tf_idf(token_sentence) as tf_sentence, vector_assembler(array(tf_sentence)) as feature) OPTIONS()
Parameter
NUM_FEATURES
MIN_DOC_FREQ
Beispieltransformation
Dieses Beispiel zeigt, wie Sie mit TF-IDF tokenisierte Sätze in einen Merkmalsvektor verwandeln können, der die Bedeutung jedes Begriffs im Kontext des gesamten Korpus darstellt.
create table td_idf_model transform(tokenizer(sentence) as token_sentence, tf_idf(token_sentence) as tf_sentence, vector_assembler(array(tf_sentence)) as feature) OPTIONS()
Tokenizer tokenizer
Der Tokenizer
ist ein Transformator, der Text, z. B. einen Satz, in einzelne Begriffe (normalerweise Wörter) aufteilt. Er wandelt Sätze in Token-Arrays um und stellt so einen grundlegenden Schritt in der Textvorverarbeitung dar, mit dem die Daten für weitere Textanalysen oder Modellierungsprozesse vorbereitet werden.
Datentypen
- Eingabedatentyp: Textsatz
- Ausgabedatentyp: array[string]
Definition
create table td_idf_model transform(tokenizer(sentence) as token_sentence, tf_idf(token_sentence) as tf_sentence, vector_assembler(array(tf_sentence)) as feature) OPTIONS()
Parameter
Tokenizer
erfordert keine zusätzlichen Parameter für ihren Betrieb.Beispieltransformation
Dieses Beispiel zeigt, wie der Tokenizer
Sätze als Teil einer Textverarbeitungs-Pipeline in einzelne Wörter (Token) aufteilt.
create table td_idf_model transform(tokenizer(sentence) as token_sentence, tf_idf(token_sentence) as tf_sentence, vector_assembler(array(tf_sentence)) as feature) OPTIONS()
Word2VEC word2vec
Der Word2Vec
ist ein Schätzer, der Wortfolgen verarbeitet, die Dokumente repräsentieren, und einen Word2VecModel
trainiert. Dieses Modell ordnet jedes Wort einem eindeutigen Vektor fester Größe zu und transformiert jedes Dokument in einen Vektor, indem es die Vektoren aller Wörter im Dokument mittelt. Word2Vec
ist bei der Verarbeitung natürlicher Sprachen weit verbreitet und schafft Worteinbettungen, die semantische Bedeutung erfassen, Textdaten in numerische Vektoren konvertieren, die die Beziehungen zwischen Wörtern darstellen und effektivere Textanalysen und Modelle für maschinelles Lernen ermöglichen.
Datentypen
- Eingabedatentyp: Array[String]
- Ausgabedatentyp: Vector[Double]
Definition
TRANSFORM(tokenizer(review) as tokenized, word2Vec(tokenized, 10, 1) as word2Vec)
Parameter
VECTOR_SIZE
MIN_COUNT
Word2Vec
-Modells enthalten sein muss.Beispieltransformation
Dieses Beispiel zeigt, wie Word2Vec
eine mit einem Token versehene Überprüfung in einen Vektor mit fester Größe konvertiert, der den Durchschnitt der Wortvektoren im Dokument darstellt.
TRANSFORM(tokenizer(review) as tokenized, word2Vec(tokenized, 10, 1) as word2Vec)
Beispiel vor und nach der Word2Vec-Transformation