时间序列分类不平衡 python_python – 时间序列分类

本文探讨了一个时间序列分类任务,预测行业基金价格的涨跌。由于数据的时序特性,作者面临不能使用传统k折交叉验证的问题。使用了线性SVM进行建模,但在训练集上得到的准确率为0.58,测试集预测结果全为真,可能忽略了时序信息。作者对于如何评估分类准确性和尝试Gradient Boosted Tree作为改进方案感到困惑。
摘要由CSDN通过智能技术生成

您可以访问此链接

https://drive.google.com/file/d/0B9Hd-26lI95ZeVU5cDY0ZU5MTWs/view?usp=sharing中的数据集

我的任务是预测行业基金的价格变动.它上升或下降多少并不重要,我只想知道它是上升还是下降.所以我将其定义为分类问题.

由于这个数据集是一个时间序列数据,我遇到了很多问题.我读过有关这些问题的文章,比如我不能使用k-fold交叉验证,因为这是时间序列数据.您不能忽略数据的顺序.

我的代码如下:

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

import datetime

from sklearn.linear_model import LinearRegression

from math import sqrt

from sklearn.svm import LinearSVC

from sklearn.svm import SVCenter code here

lag1 = pd.read_csv(#local file path, parse_dates=['Date'])

#Trend : if price going up: ture, otherwise false

lag1['Trend'] = lag1.XLF > lag1.XLF.shift()

train_size = round(len(lag1)*0.50)

train = lag1[0:train_size]

test = lag1[train_size:]

variable_to_use= ['rGDP','interest_rate','private_auto_insurance','M2_money_supply','VXX']

y_train = train['Trend']

X_train = train[variable_to_use]

y_test = test['Trend']

X_test = test[variable_to_use]

#SVM Lag1

this_C = 1.0

clf = SVC(kernel = 'linear', C=this_C).fit(X_train, y_train)

print('XLF Lag1 dataset')

print('Accuracy of Linear SVC classifier on training set: {:.2f}'

.format(clf.score(X_train, y_train)))

print('Accuracy of Linear SVC classifier on test set: {:.2f}'

.format(clf.score(X_test, y_test)))

#Check prediction results

clf.predict(X_test)

首先,我的方法就在这里:首先生成一列真假?如果我只是将此列提供给它,恐怕机器无法理解此列.我应该首先执行回归,然后比较数字结果以生成上升或下降的列表吗?

训练集的准确度非常低:0.58我得到一个包含clf.predict(X_test)的所有trues的数组,我不知道为什么我会得到所有的真实.

而且我不知道最终的准确度是否以哪种方式计算:例如,我认为我当前的准确度只计算真假的数量而忽略了它们的顺序?由于这是时间序列数据,忽略订单是不正确的,并没有给我任何关于预测价格变动的信息.假设我在测试集中有40个例子,我得到20个Tures我会得到50%的准确率.但是,我猜这些真理不在正确的位置,因为它出现在地面真相中. (告诉我,如果我错了)

我也在考虑使用Gradient Boosted Tree进行分类,它会更好吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值