import pandas as pd
from sklearn import svm,preprocessing
from data_out import *
ZGPA = pd.read_csv('zgpn.csv')
ZGPA.index = ZGPA['date']
df_CB = ZGPA.sort_index(ascending=True, axis=0)
df_CB = df_CB.set_index('date')
df_CB = df_CB.sort_index()
value = pd.Series(df_CB['close']-df_CB['close'].shift(1),\
index=df_CB.index)
value = value.bfill()
value[value>=0]=1
value[value<0]=0
df_CB['Value']=value
df_CB=df_CB.fillna(method='bfill')
df_CB=df_CB.astype('float64')
print(df_CB.head())
L=len(df_CB)
train=int(L*0.8)
total_predict_data=L-train
df_CB_X=df_CB.drop(['Value'],axis=1)
df_CB_X=preprocessing.scale(df_CB_X)
correct = 0
train_original=train
while train<L:
Data_train=df_CB_X[train-train_original:train]
value_train = value[train-train_original:train]
Data_predict=df_CB_X[train:train+1]
value_real = value[train:train+1]
classifier = svm.SVC(C=1.0,kernel='rbf')
classifier.fit(Data_train,value_train)
value_predict=classifier.predict(Data_predict)
print("value_real=%d value_predict=%d"%(value_real[0],value_predict))
if(value_real[0]==int(value_predict)):
correct=correct+1
train = train+1
print(correct)
print(total_predict_data)
correct=correct*100/total_predict_data
print("Correct=%.2f%%"%correct)