Ejemplo n.º 1
0
def analyze_weights(model: Model, columns):
    zero_sample = pd.DataFrame(np.zeros((1, len(columns))), columns=columns)

    offset = model.predict(zero_sample).values.ravel()
    weights = pd.DataFrame(offset, columns=["offset"])

    for column in columns:
        zero_sample[column] = 1.0
        weights[column] = model.predict(zero_sample)
        weights[column] -= weights["offset"]
        zero_sample[column] = 0.0

    return weights
def evaluateSVM(settings, grid={}):
    svmModel = Model("train_and_test",
                     features=[
                         "bow", "kuhn_munkres", "length_diff", "q_features",
                         "ref_hedg_bow", "root_dist", "SVO_ppdb", "word2vec"
                     ],
                     classifier="SVM",
                     settings=settings,
                     hyperparameters_grid=grid)
    print("Results SVM: ", svmModel.results)
    return svmModel
def evaluateNaiveBayes(settings):
    naiveBayesModel = Model("train_and_test",
                            features=[
                                "bow", "kuhn_munkres", "length_diff",
                                "q_features", "ref_hedg_bow", "root_dist",
                                "SVO_ppdb", "word2vec"
                            ],
                            classifier="Naive Bayes",
                            settings=settings)
    print("Results Naïve Bayes: ", naiveBayesModel.results)
    return naiveBayesModel
def evaluateLogisticRegression(settings):
    logisticRegressionModel = Model("train_and_test",
                                    features=[
                                        "bow", "kuhn_munkres", "length_diff",
                                        "q_features", "ref_hedg_bow",
                                        "root_dist", "SVO_ppdb", "word2vec"
                                    ],
                                    classifier="Logistic Regression",
                                    settings=settings)
    print("Results Logistic Regression: ", logisticRegressionModel.results)
    return logisticRegressionModel
Ejemplo n.º 5
0
target_transformations = [
    ColumnSelection([volume_col]),
    CutNTop(horizon)
]

transformations = DataTransformations(feature_transformations, target_transformations)

splitter = Splitter(ratio=0.2)
dataset_maker = DatasetMaker(transformations, splitter)

# Data
data = pd.read_csv("data/sp500.csv")
training_data, testing_data = dataset_maker.make(data)

# Learning
params = {
    "solver": "adam",
    "activation": "tanh",
    "hidden_layer_sizes": tuple(20 for _ in range(5)),
    "max_iter": 10000,
}

model = Model(MLPRegressor, params)
model.fit(*training_data)
prediction = model.predict(testing_data.features)

pprint(model.get_parameters())

BarsDrawer(testing_data.target, prediction).show()
print("R2:", r2_score(testing_data.target, prediction))
Ejemplo n.º 6
0
transformations = DataTransformations(feature_transformations, target_transformations)

splitter = Splitter(ratio=0.4, seed=42)
dataset_maker = DatasetMaker(transformations, splitter)

# Data
data = pd.read_csv("data/sp500.csv")
training_data, testing_data = dataset_maker.make(data)

# Learning
params = {
    "fit_intercept": False,
}

model = Model(LinearRegression, params)
model.fit(*training_data)
prediction = model.predict(testing_data.features)

BarsDrawer(testing_data.target, prediction).show()

print("Coefficients:", model.model.coef_)
pprint(model.get_parameters())

print("R2:", r2_score(testing_data.target, prediction))
print("mean abs error:", mean_absolute_error(testing_data.target, prediction))
print("% mean abs error:", relative_absolute_error_per_sample(testing_data.target, prediction))

columns = testing_data.features.columns
zero_sample = pd.DataFrame(np.zeros((1, len(columns))), columns=columns)
Ejemplo n.º 7
0
    trainingSettingsSVM, trainingSettingsRandomForest, nestedRandomForestGrid, nestedRandomForestSettings, nestedSVMSettings
import json

feature_set = {
    "bow", "kuhn_munkres", "length_diff", "q_features", "ref_hedg_bow",
    "root_dist", "SVO_ppdb", "word2vec"
}
classifiers = [("Logistic Regression", trainingSettingsLogisticRegression, {}),
               ("Naive Bayes", trainingSettingsNaiveBayes, {}),
               ("Random Forest", nestedRandomForestSettings,
                nestedRandomForestGrid),
               ("SVM", trainingSettingsSVM, nestedSVMSettings)]
results = {}
for feature in feature_set:
    new_feature_set = feature_set.copy()
    new_feature_set.remove(feature)
    results[feature] = {}
    for (clsf, settings, hyper) in classifiers:
        print(
            f'Fitting model {clsf} with parameters {settings} and hyper {hyper}'
        )
        model = Model("train_and_test",
                      features=new_feature_set,
                      classifier=clsf,
                      settings=settings,
                      hyperparameters_grid=hyper)
        results[feature][clsf] = model.results

with open(DATA_PATH + "/ablation_results.json", "w") as fp:
    json.dump(results, fp, indent=4)