-
Notifications
You must be signed in to change notification settings - Fork 0
/
stock.py
30 lines (28 loc) · 1.02 KB
/
stock.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import pandas as pd
import quandl
import math
import numpy as np
from sklearn import svm,preprocessing,cross_validation
from sklearn.linear_model import LinearRegression
df=quandl.get('WIKI/GOOGL')
df=df[['Adj. Open','Adj. High','Adj. Low','Adj. Close','Adj. Volume']]
df['HL_PCT']=(df['Adj. High']-df['Adj. Open'])/df['Adj. Open']*100.0
df['PCT_change']=(df['Adj. Close']-df['Adj. Open'])/df['Adj. Open']*100.0
df=df[['Adj. Close','HL_PCT','PCT_change','Adj. Volume']]
df.fillna(-99999,inplace=True)
forecast_col='Adj. Close'
forecast_out=int(math.ceil(0.01*len(df)))
df['label']=df[forecast_col].shift(-forecast_out)
X=np.array(df.drop(['label'],1))
X=preprocessing.scale(X)
X_lately=X[-forecast_out:]
X=X[:-forecast_out]
df.dropna(inplace=True)
y=np.array(df['label'])
X_train,X_test,y_train,y_test=cross_validation.train_test_split(X,y,test_size=0.2)
clf=LinearRegression(n_jobs=-1)
clf.fit(X_train,y_train)
accuracy=clf.score(X_test,y_test)
forecast_set=clf.predict(X_lately)
print(forecast_set,"\n")
print("Accuracy is",accuracy*100,"%")