Rumah > Artikel > pembangunan bahagian belakang > Contoh klasifikasi siri masa dalam Python
Python merupakan salah satu bahasa pengaturcaraan yang paling popular pada masa ini. Ciri yang berkuasa dan fleksibel menjadikannya bahasa pilihan dalam bidang sains data dan pembelajaran mesin. Dalam analisis data, siri masa adalah konsep yang sangat penting kerana ia boleh digunakan untuk menerangkan data tertib masa, seperti harga saham, perubahan cuaca, dll.
Dalam artikel ini, kami akan meneroka cara mengklasifikasikan data siri masa menggunakan Python.
Pertama, kita perlu menyediakan data untuk pengelasan. Dalam contoh ini, kami akan menggunakan set data daripada Repositori Pembelajaran Mesin UCI, yang mengandungi siri masa 1000 hari, setiap satu terdiri daripada 24 jam data meteorologi. Set data ini bertujuan untuk meramalkan sama ada suhu minimum hari berikutnya akan jatuh di bawah ambang tertentu.
Kami akan menggunakan pustaka panda untuk memuatkan set data.
import pandas as pd # 加载数据集 data = pd.read_csv("weather.csv") # 查看前几行数据 print(data.head())
Output:
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
Seperti yang kita lihat, set data mengandungi maklumat seperti tarikh, data cuaca 24 jam dan suhu minimum (Tmin).
Sebelum pengelasan, kita perlu praproses data. Salah satu langkah ialah kejuruteraan ciri, di mana kita perlu mengekstrak ciri baharu daripada data asal untuk meningkatkan prestasi model.
Kami boleh mengekstrak ciri berikut daripada siri masa:
Kita boleh menggunakan panda untuk mengekstrak ciri ini dengan cepat.
# 提取以下特征 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())
Output:
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
Kini kami telah berjaya mengekstrak beberapa ciri baharu daripada siri masa, yang akan memberikan lebih banyak maklumat kepada pengelas kami.
Seterusnya, kita perlu membahagikan set data kepada set latihan dan set ujian. Kami akan menggunakan perpustakaan scikit-learn untuk menyelesaikan tugasan ini.
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)
Di sini kami membahagikan set data kepada set latihan 80% dan set ujian 20%.
Kini, kami bersedia untuk mengelaskan data menggunakan pengelas siri masa. Dalam contoh ini kita akan menggunakan model LightGBM.
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))
Output:
Accuracy: 94.50%
Kami mendapat ketepatan 94.5%, yang bermaksud model kami meramalkan dengan sangat tepat sama ada suhu minimum berada di bawah ambang yang telah ditetapkan.
Mengelaskan data siri masa telah menjadi sangat mudah dalam Python menggunakan pengelas siri masa. Dalam artikel ini, kami menggunakan model LightGBM untuk mengklasifikasikan data siri masa dan menggunakan pustaka panda untuk mempraproses data dan mengekstrak ciri.
Sama ada anda bekerja dalam ramalan harga saham, ramalan perubahan cuaca atau tugasan siri masa yang lain, alatan dan teknik ini boleh membantu anda melaksanakan analisis dan ramalan data dengan lebih baik.
Atas ialah kandungan terperinci Contoh klasifikasi siri masa dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!