Python ist derzeit eine der beliebtesten Programmiersprachen und aufgrund seiner leistungsstarken und flexiblen Funktionen die Sprache der Wahl in den Bereichen Datenwissenschaft und maschinelles Lernen. In der Datenanalyse sind Zeitreihen ein sehr wichtiges Konzept, da sie zur Beschreibung zeitlich geordneter Daten wie Aktienkurse, Wetteränderungen usw. verwendet werden können.
In diesem Artikel erfahren Sie, wie Sie Zeitreihendaten mit Python klassifizieren.
Zuerst müssen wir die Daten für die Klassifizierung vorbereiten. In diesem Beispiel verwenden wir einen Datensatz aus dem UCI Machine Learning Repository, der eine 1000-Tage-Zeitreihe enthält, die jeweils aus 24 Stunden meteorologischen Daten besteht. Ziel dieses Datensatzes ist es, vorherzusagen, ob die Tiefsttemperatur am nächsten Tag unter einen bestimmten Schwellenwert fallen wird.
Wir werden die Pandas-Bibliothek verwenden, um den Datensatz zu laden.
import pandas as pd # 加载数据集 data = pd.read_csv("weather.csv") # 查看前几行数据 print(data.head())
Ausgabe:
Date R1 R2 R3 R4 R5 R6 R7 R8 R9 ... R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 Tmin 0 1/01/14 58 41 67 63 44 50 46 52 64 ... 82 83 62 49 67 73 65 52 39 23 42 1 2/01/14 46 45 36 63 72 75 80 65 68 ... 74 73 52 43 36 47 19 16 13 15 26 2 3/01/14 48 37 39 45 74 75 76 66 45 ... 76 62 49 50 38 50 29 15 13 15 30 3 4/01/14 46 43 47 76 48 68 77 61 61 ... 24 28 39 33 26 3 4 6 0 10 50 4 5/01/14 49 42 58 74 70 47 68 59 43 ... 55 37 36 42 30 29 35 31 25 22 32
Wie wir sehen können, enthält der Datensatz Informationen wie Datum, 24-Stunden-Wetterdaten und Mindesttemperatur (Tmin).
Vor der Klassifizierung müssen wir die Daten vorverarbeiten. Einer der Schritte ist das Feature Engineering, bei dem wir neue Features aus den Originaldaten extrahieren müssen, um die Leistung des Modells zu verbessern.
Wir können die folgenden Merkmale aus der Zeitreihe extrahieren:
Wir können Pandas verwenden, um diese Merkmale schnell zu extrahieren.
# 提取以下特征 features = [] for i in range(1, 25): features.append("R"+str(i)) data['Mean'] = data[features].mean(axis=1) data['Std'] = data[features].std(axis=1) data['Min'] = data[features].min(axis=1) data['Max'] = data[features].max(axis=1) data['Median'] = data[features].median(axis=1) data['Var'] = data[features].var(axis=1) # 查看更新后的数据集 print(data.head())
Ausgabe:
Date R1 R2 R3 R4 R5 R6 R7 R8 R9 ... R18 R19 R20 R21 R22 R23 R24 Tmin Mean Std Min Max Median Var 0 1/01/14 58 41 67 63 44 50 46 52 64 ... 49 67 73 65 52 39 23 42 55.166667 15.181057 23 83 54.5 230.456140 1 2/01/14 46 45 36 63 72 75 80 65 68 ... 43 36 47 19 16 13 15 26 47.125000 20.236742 13 80 45.5 410.114035 2 3/01/14 48 37 39 45 74 75 76 66 45 ... 50 38 50 29 15 13 15 30 47.208333 19.541905 13 76 44.5 382.149123 3 4/01/14 46 43 47 76 48 68 77 61 61 ... 33 26 3 4 6 0 10 50 36.750000 19.767969 0 77 42.5 390.350877 4 5/01/14 49 42 58 74 70 47 68 59 43 ... 42 30 29 35 31 25 22 32 45.666667 16.013175 22 74 43.5 256.508772
Jetzt haben wir erfolgreich einige neue Features aus der Zeitreihe extrahiert, die unserem Klassifikator mehr Informationen liefern werden.
Als nächstes müssen wir den Datensatz in einen Trainingssatz und einen Testsatz aufteilen. Wir werden die Scikit-Learn-Bibliothek verwenden, um diese Aufgabe zu erfüllen.
from sklearn.model_selection import train_test_split X = data.drop(['Date','Tmin'], axis=1) y = data['Tmin'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
Hier teilen wir den Datensatz in 80 % Trainingssatz und 20 % Testsatz auf.
Jetzt sind wir bereit, die Daten mithilfe eines Zeitreihenklassifikators zu klassifizieren. In diesem Beispiel verwenden wir das LightGBM-Modell.
import lightgbm as lgb # 创建LightGBM分类器 clf = lgb.LGBMClassifier() # 训练模型 clf.fit(X_train, y_train) # 在测试集上进行预测 y_pred = clf.predict(X_test) # 计算精度 accuracy = sum(y_pred == y_test) / len(y_test) print("Accuracy: {:.2f}%".format(accuracy * 100))
Ausgabe:
Accuracy: 94.50%
Wir haben eine Genauigkeit von 94,5 % erreicht, was bedeutet, dass unser Modell sehr genau vorhergesagt hat, ob die Mindesttemperatur unter dem vordefinierten Schwellenwert liegt.
Die Klassifizierung von Zeitreihendaten wird mit dem Zeitreihenklassifikator in Python sehr einfach. In diesem Artikel verwenden wir das LightGBM-Modell zur Klassifizierung von Zeitreihendaten und nutzen die Pandas-Bibliothek zur Vorverarbeitung der Daten und zum Extrahieren von Features.
Ganz gleich, ob Sie mit der Vorhersage von Aktienkursen, der Vorhersage von Wettervorhersagen oder anderen Zeitreihenaufgaben arbeiten, diese Tools und Techniken können Ihnen dabei helfen, Datenanalysen und Prognosen besser durchzuführen.
Das obige ist der detaillierte Inhalt vonBeispiele für die Klassifizierung von Zeitreihen in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!