Heim >Backend-Entwicklung >Python-Tutorial >Beispiele für die Klassifizierung von Zeitreihen in Python

Beispiele für die Klassifizierung von Zeitreihen in Python

WBOY
WBOYOriginal
2023-06-10 11:58:441966Durchsuche

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())

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).

  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())

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.

  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)

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))

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.

  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!

Stellungnahme:
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