Skip to content

Instantly share code, notes, and snippets.

View astoeckl's full-sized avatar

Andreas Stöckl astoeckl

  • FH OÖ
  • Hagenberg
View GitHub Profile
import pandas as pd
import numpy as np
df = pd.read_csv("news_en.csv", sep=',',index_col = "id")
print(df.shape)
df.head()
import gensim
def read_corpus(fname, tokens_only=False):
for i, line in enumerate(fname):
if tokens_only:
yield gensim.utils.simple_preprocess(line)
else:
yield gensim.models.doc2vec.TaggedDocument(gensim.utils.simple_preprocess(line), [i])
train_corpus = list(read_corpus(df_train["Body"]))
allvecs=[]
for i in range(len(train_corpus)):
allvecs.append(model.docvecs[i])
df_train["vec"] = allvecs
import quandl
quandl.ApiConfig.api_key = "YOURKEY"
apple = quandl.get("EOD/AAPL", start_date="2016-02-22", end_date="2018-07-23")
print(apple.shape)
apple.head()
apple["Daily Change"] = apple["Adj_Close"].diff(periods=1)
apple.head()
result = pd.merge(df_train, apple, on='Date')
print(result.shape)
import numpy as np
feat, y = result["vec"].values, result["Daily Change"].values
frames = [pd.DataFrame(result["vec"].values[i]).transpose() for i in range(result.shape[0]) ]
X = pd.concat(frames)
from keras.models import Sequential
from keras.layers import Input, Dense, Dropout
from keras.models import Model
regmodel = Sequential()
regmodel.add(Dense(150, activation='relu', input_shape=(300,)))
regmodel.add(Dropout(0.5))
regmodel.add(Dense(75, activation='relu'))
regmodel.add(Dropout(0.5))
regmodel.add(Dense(1, activation='linear'))
regmodel.compile(loss='mse', optimizer='adam')
history = regmodel.fit(X, y, epochs=500, verbose=2)
from scipy.stats.stats import pearsonr
ytrain = np.squeeze(regmodel.predict(X))
pearsonr(ytrain, y)