Commit 034268b7 authored by Andreas Schmidt's avatar Andreas Schmidt

Add a sample notebook. Refactor regression out.

parent 0feb1cbc
build/
dist/
xlap.egg-info/
.ipynb_checkpoints/
\ No newline at end of file
{
"cells": [
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from xlap.parse import evaluate, parse_config\n",
"import xlap.analyse.jitter as jitter\n",
"from xlap.analyse.regress import linear as linear_regression"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"config = parse_config()\n",
"data_files = config[\"data_files\"]\n",
"original = evaluate(data_files[\"sender\"], data_files[\"receiver\"], config=config, kind=0)\n",
"df = jitter.prep(original, config=config)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"4018 / 4095 are no outliers.\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/usr/local/lib/python3.5/dist-packages/matplotlib/figure.py:1742: UserWarning: This figure includes Axes that are not compatible with tight_layout, so its results might be incorrect.\n",
" warnings.warn(\"This figure includes Axes that are not \"\n"
]
},
{
"data": {
"image/png": "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\n4vw/JtbopwQfVTUAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7efc61bd5668>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"jitter.trace_jitter(df)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"R-Score: 0.0444517602497\n"
]
}
],
"source": [
"linear_regression(original,\"Feedback_D\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
import math
import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model
plt.rcParams["figure.figsize"] = (16, 9)
plt.rcParams.update({'figure.autolayout': True})
......@@ -9,16 +8,6 @@ plt.rcParams.update({'figure.autolayout': True})
# TODO: Refactor.
def regress(df, column):
x = df.index.values.reshape(-1, 1)
y = df[column].values
model = linear_model.LinearRegression()
model.fit(x, y)
print("R-Score:", model.score(x, y))
plt.scatter(x, y)
plt.grid()
plt.plot(x, model.predict(x), color="red", linewidth=3)
def trace(df, title, export=False):
......
from sklearn import linear_model
import matplotlib.pyplot as plt
def linear(data_frame, column):
"""
Execute a simple linear regression on the given column for the passed data_frame.
:param data_frame:
:param column:
:return:
"""
x = data_frame.index.values.reshape(-1, 1)
y = data_frame[column].values
model = linear_model.LinearRegression()
model.fit(x, y)
print("R-Score:", model.score(x, y))
plt.scatter(x, y)
plt.grid()
plt.plot(x, model.predict(x), color="red", linewidth=3)
plt.show()
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment