室內用戶時序資料分類
- 賽題介紹
- 資料簡介
- 資料分析
- Baseline程式
- 提交結果
賽題介紹
賽題名:室內用戶運動時序資料分類
賽道:訓練賽道
背景:隨著資料量的不斷積累,海量時序資訊的處理需求日益凸顯,作為時間序列資料分析中的重要任務之一,時間序列分類應用廣泛且多樣,時間序列分類旨在賦予序列某個離散標記,傳統特征提取演算法使用時間序列中的統計資訊作為分類的依據,近年來,基于深度學習的時序分類取得了較大進展,基于端到端的特征提取方式,深度學習可以避免繁瑣的人工特征設計,如何對時間序列中進行有效的分類,從繁蕪叢雜的資料集中將具有某種特定形態的序列歸屬到同一個集合,對于學術研究及工業應用具有重要意義,
任務:基于上述實際需求以及深度學習的進展,本次訓練賽旨在構建通用的時間序列分類演算法,通過本賽題建立準確的時間序列分類模型,希望大家探索更為魯棒的時序特征表述方法,
比賽鏈接:https://www.datafountain.cn/competitions/484
資料簡介
資料整理自網上公開資料集UCI(已脫敏),資料集涵蓋2類不同時間序列,該類資料集廣泛應用于時序分類的業務場景,
| 檔案類別 | 檔案名 | 檔案內容 |
|---|---|---|
| 訓練集 | train.csv | 訓練資料集標簽檔案,標簽CLASS |
| 測驗集 | test.csv | 測驗資料集標簽檔案,無標簽 |
| 欄位說明 | 欄位說明.xlsx | 訓練集/測驗集XXX個欄位的具體說明 |
| 提交樣例 | Ssample_submission.csv | 僅有兩個欄位ID\CLASS |
資料分析
本題是一個二分類的問題,通過對訓練集資料的觀察,發現資料量很小(210個)且擁有大量的特征(240個),并且對于訓練資料的標簽值,0和1的分布十分均勻(約各一半),基于此,使用直接神經網路模型會導致需要訓練的引數過多從而獲得不理想的結果,而使用樹模型,需要調整一些超引數來適應該資料,也比較繁瑣,綜合以上分析,本文考慮使用最簡單的支持向量機來進行分類,結果表明也獲得了比較好的結果,
Baseline程式
import pandas as pd
import numpy as np
from sklearn.model_selection import StratifiedKFold, KFold
from sklearn.svm import SVR
train = pd.read_csv('train.csv')
test = pd.read_csv('test.csv')
#分離資料集
X_train_c = train.drop(['ID','CLASS'], axis=1).values
y_train_c = train['CLASS'].values
X_test_c = test.drop(['ID'], axis=1).values
nfold = 5
kf = KFold(n_splits=nfold, shuffle=True, random_state=2020)
prediction1 = np.zeros((len(X_test_c), ))
i = 0
for train_index, valid_index in kf.split(X_train_c, y_train_c):
print("\nFold {}".format(i + 1))
X_train, label_train = X_train_c[train_index],y_train_c[train_index]
X_valid, label_valid = X_train_c[valid_index],y_train_c[valid_index]
clf=SVR(kernel='rbf',C=1,gamma='scale')
clf.fit(X_train,label_train)
x1 = clf.predict(X_valid)
y1 = clf.predict(X_test_c)
prediction1 += ((y1)) / nfold
i += 1
result1 = np.round(prediction1)
id_ = range(210,314)
df = pd.DataFrame({'ID':id_,'CLASS':result1})
df.to_csv("baseline.csv", index=False)
提交結果
提交baseline,得分是0.83653846154,
由于對資料做了五折,因此提交結果分數會有一點波動,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/209712.html
標籤:python
下一篇:雷軍、馬云、馬化騰控股的公司
