Beispiele für die Klassifizierung von Zeitreihen in Python

WBOY
Freigeben: 2023-06-10 11:58:44
Original
1880 Leute haben es durchsucht

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.

  1. Datenvorbereitung

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())
Nach dem Login kopieren

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
Nach dem Login kopieren

Wie wir sehen können, enthält der Datensatz Informationen wie Datum, 24-Stunden-Wetterdaten und Mindesttemperatur (Tmin).

  1. Feature Engineering

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:

  • Mittelwert
  • Varianz
  • Maximum
  • Minimum
  • Median
  • Standardabweichung

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())
Nach dem Login kopieren

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
Nach dem Login kopieren

Jetzt haben wir erfolgreich einige neue Features aus der Zeitreihe extrahiert, die unserem Klassifikator mehr Informationen liefern werden.

  1. Datenpartition

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)
Nach dem Login kopieren

Hier teilen wir den Datensatz in 80 % Trainingssatz und 20 % Testsatz auf.

  1. Zeitreihenklassifizierung

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))
Nach dem Login kopieren

Ausgabe:

Accuracy: 94.50%
Nach dem Login kopieren

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.

  1. Fazit

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!