In [1]:
## imports,
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

import models.imports.features

sns.set()

In [2]:
## load in features df.

trainsf_ = r'../data/text/bitcoin/train_set.csv'
train_set = models.imports.features.import_file(trainsf_)
train_set_x, train_set_y = models.imports.features.scale_and_transform_into_datasets(train_set)

In [3]:
from sklearn.linear_model import ElasticNetCV

In [4]:
model = ElasticNetCV(fit_intercept=True, alphas=np.linspace(.01, 4, 100), cv=5, l1_ratio=np.linspace(.01, 4, 100), max_iter=5000)
model.fit(train_set_x.values, train_set_y.values.ravel())


Out[4]:
ElasticNetCV(alphas=array([0.01  , 0.0503, ..., 3.9597, 4.    ]), copy_X=True,
       cv=5, eps=0.001, fit_intercept=True,
       l1_ratio=array([0.01  , 0.0503, ..., 3.9597, 4.    ]),
       max_iter=5000, n_alphas=100, n_jobs=1, normalize=False,
       positive=False, precompute='auto', random_state=None,
       selection='cyclic', tol=0.0001, verbose=0)

In [5]:
prediction = model.predict(train_set_x)

mse = models.imports.features.mse(train_set_y.values, prediction)
print('mse:', mse)


mse: 0.055845843585415174

In [6]:
plt.plot(prediction, 'ro', markersize=1)
plt.plot(train_set_y, 'b', alpha=.3)
plt.show()



In [7]:
## test,

testsf_ = r'../data/text/bitcoin/test_set.csv'
test_set = models.imports.features.import_file(testsf_)
test_set_x, test_set_y = models.imports.features.scale_and_transform_into_datasets(test_set)

In [8]:
## mean squared error,

test_prediction = model.predict(test_set_x)
mse_test = models.imports.features.mse(test_set_y.values, test_prediction)
print('mse:', mse_test)


mse: 0.056262867428063655

In [9]:
plt.plot(model.predict(test_set_x), 'ro', markersize=1)
plt.plot(test_set_y, 'b', alpha=.3)
plt.show()



In [ ]: