diff --git a/dev-0/out.tsv b/dev-0/out.tsv new file mode 100644 index 0000000..fd03d5f --- /dev/null +++ b/dev-0/out.tsv @@ -0,0 +1,1000 @@ +67053 +27459 +31858 +14261 +36258 +62654 +40657 +31858 +1063 +31858 +23059 +67053 +5462 +14261 +45056 +27459 +53855 +75852 +31858 +27459 +31858 +23059 +-7735 +62654 +1063 +71453 +62654 +27459 +18660 +45056 +62654 +53855 +23059 +23059 +36258 +71453 +31858 +36258 +45056 +53855 +75852 +49456 +36258 +53855 +18660 +58254 +71453 +18660 +62654 +53855 +71453 +-3336 +75852 +49456 +14261 +-3336 +1063 +49456 +53855 +36258 +62654 +9861 +31858 +71453 +71453 +27459 +14261 +67053 +36258 +23059 +23059 +31858 +23059 +18660 +67053 +1063 +67053 +53855 +23059 +14261 +36258 +9861 +58254 +18660 +40657 +49456 +71453 +27459 +45056 +27459 +23059 +53855 +40657 +67053 +-25333 +27459 +27459 +53855 +40657 +40657 +5462 +31858 +-7735 +27459 +27459 +31858 +31858 +40657 +49456 +18660 +71453 +-3336 +53855 +62654 +18660 +45056 +-7735 +45056 +53855 +36258 +40657 +27459 +1063 +36258 +71453 +36258 +1063 +40657 +31858 +53855 +18660 +5462 +14261 +58254 +-16534 +45056 +40657 +71453 +40657 +49456 +23059 +58254 +36258 +27459 +31858 +45056 +71453 +18660 +23059 +49456 +49456 +18660 +53855 +-7735 +71453 +-16534 +71453 +27459 +45056 +58254 +23059 +67053 +14261 +5462 +9861 +5462 +18660 +45056 +31858 +75852 +75852 +71453 +18660 +18660 +75852 +31858 +71453 +75852 +71453 +75852 +53855 +45056 +36258 +1063 +27459 +18660 +58254 +18660 +-3336 +18660 +-16534 +62654 +40657 +71453 +23059 +53855 +23059 +14261 +31858 +40657 +75852 +75852 +-7735 +-16534 +36258 +5462 +31858 +31858 +62654 +45056 +36258 +31858 +23059 +14261 +36258 +71453 +49456 +67053 +45056 +53855 +1063 +58254 +31858 +-3336 +53855 +36258 +18660 +45056 +40657 +49456 +5462 +40657 +36258 +45056 +-7735 +18660 +71453 +18660 +23059 +62654 +23059 +40657 +40657 +53855 +40657 +23059 +27459 +58254 +40657 +14261 +71453 +40657 +49456 +75852 +40657 +67053 +31858 +62654 +27459 +40657 +58254 +18660 +23059 +27459 +71453 +23059 +-3336 +75852 +18660 +36258 +9861 +40657 +36258 +40657 +71453 +27459 +27459 +49456 +31858 +31858 +67053 +62654 +36258 +14261 +75852 +-3336 +75852 +23059 +58254 +71453 +27459 +75852 +40657 +18660 +31858 +36258 +36258 +23059 +36258 +53855 +27459 +27459 +14261 +45056 +36258 +49456 +23059 +71453 +53855 +14261 +18660 +1063 +36258 +9861 +75852 +49456 +9861 +23059 +58254 +31858 +49456 +53855 +23059 +31858 +75852 +45056 +31858 +27459 +62654 +31858 +40657 +71453 +1063 +45056 +9861 +53855 +45056 +36258 +27459 +71453 +45056 +71453 +45056 +62654 +9861 +53855 +9861 +23059 +71453 +49456 +58254 +23059 +36258 +58254 +62654 +49456 +18660 +23059 +49456 +45056 +75852 +53855 +14261 +58254 +-7735 +75852 +71453 +75852 +31858 +23059 +40657 +9861 +-3336 +67053 +75852 +58254 +31858 +58254 +62654 +36258 +-3336 +45056 +45056 +62654 +18660 +49456 +18660 +14261 +36258 +14261 +53855 +36258 +49456 +36258 +5462 +58254 +36258 +62654 +-16534 +27459 +45056 +36258 +71453 +58254 +58254 +36258 +23059 +27459 +14261 +75852 +40657 +14261 +9861 +75852 +75852 +71453 +75852 +18660 +58254 +49456 +53855 +49456 +75852 +75852 +31858 +58254 +45056 +5462 +53855 +53855 +53855 +67053 +58254 +27459 +31858 +75852 +36258 +40657 +40657 +18660 +40657 +71453 +1063 +75852 +75852 +36258 +53855 +53855 +62654 +53855 +31858 +36258 +23059 +18660 +23059 +58254 +23059 +67053 +62654 +53855 +67053 +23059 +36258 +27459 +9861 +49456 +31858 +75852 +49456 +40657 +36258 +18660 +31858 +58254 +40657 +31858 +23059 +23059 +36258 +67053 +-3336 +49456 +18660 +31858 +18660 +31858 +62654 +49456 +23059 +27459 +49456 +58254 +75852 +45056 +27459 +49456 +71453 +45056 +40657 +18660 +71453 +31858 +36258 +27459 +58254 +62654 +53855 +9861 +71453 +58254 +-38531 +75852 +62654 +14261 +67053 +53855 +14261 +53855 +45056 +-3336 +18660 +31858 +71453 +5462 +36258 +67053 +1063 +62654 +67053 +58254 +45056 +31858 +75852 +27459 +71453 +9861 +75852 +27459 +1063 +62654 +71453 +71453 +31858 +14261 +14261 +5462 +49456 +23059 +40657 +75852 +58254 +49456 +18660 +45056 +9861 +9861 +36258 +9861 +23059 +62654 +36258 +75852 +9861 +31858 +45056 +-3336 +49456 +36258 +14261 +18660 +58254 +40657 +53855 +62654 +49456 +40657 +58254 +71453 +31858 +27459 +-7735 +58254 +1063 +36258 +71453 +23059 +9861 +49456 +49456 +23059 +5462 +31858 +75852 +18660 +23059 +62654 +58254 +67053 +49456 +23059 +27459 +71453 +53855 +18660 +36258 +49456 +18660 +-38531 +58254 +27459 +40657 +27459 +1063 +58254 +49456 +36258 +31858 +36258 +58254 +40657 +62654 +27459 +1063 +49456 +45056 +53855 +18660 +40657 +18660 +62654 +18660 +49456 +45056 +9861 +31858 +1063 +36258 +9861 +67053 +23059 +45056 +9861 +14261 +40657 +36258 +27459 +40657 +40657 +62654 +23059 +18660 +45056 +27459 +67053 +49456 +18660 +67053 +71453 +49456 +40657 +18660 +14261 +45056 +45056 +40657 +49456 +23059 +9861 +18660 +71453 +67053 +31858 +-7735 +45056 +18660 +9861 +9861 +71453 +36258 +53855 +-12134 +36258 +-3336 +62654 +53855 +40657 +40657 +45056 +9861 +-3336 +27459 +9861 +14261 +23059 +45056 +27459 +-12134 +40657 +14261 +27459 +5462 +49456 +75852 +53855 +27459 +62654 +49456 +75852 +40657 +-51729 +18660 +1063 +18660 +53855 +9861 +49456 +9861 +67053 +9861 +53855 +53855 +-7735 +40657 +75852 +18660 +27459 +58254 +9861 +40657 +18660 +27459 +67053 +58254 +14261 +14261 +75852 +-7735 +27459 +45056 +18660 +45056 +9861 +58254 +53855 +9861 +31858 +62654 +45056 +53855 +31858 +67053 +-25333 +62654 +71453 +31858 +75852 +53855 +9861 +-60527 +27459 +27459 +27459 +36258 +71453 +36258 +67053 +27459 +36258 +5462 +45056 +-16534 +36258 +27459 +49456 +49456 +23059 +-16534 +31858 +45056 +27459 +23059 +53855 +-38531 +62654 +49456 +23059 +71453 +49456 +27459 +31858 +31858 +27459 +-7735 +27459 +71453 +-16534 +27459 +67053 +75852 +27459 +5462 +14261 +71453 +23059 +27459 +9861 +49456 +45056 +45056 +71453 +5462 +62654 +71453 +14261 +36258 +27459 +36258 +18660 +62654 +75852 +53855 +27459 +-3336 +27459 +40657 +67053 +49456 +-3336 +75852 +71453 +31858 +45056 +67053 +71453 +18660 +49456 +62654 +36258 +-3336 +62654 +23059 +40657 +71453 +23059 +9861 +53855 +31858 +67053 +23059 +31858 +23059 +40657 +31858 +62654 +58254 +40657 +27459 +53855 +27459 +45056 +40657 +31858 +-3336 +31858 +31858 +14261 +9861 +23059 +36258 +14261 +71453 +58254 +45056 +40657 +1063 +75852 +53855 +75852 +62654 +71453 +27459 +40657 +58254 +9861 +45056 +45056 +23059 +45056 +31858 +9861 +-12134 +40657 +18660 +23059 +36258 +-38531 +40657 +-7735 +36258 +75852 +53855 +1063 +75852 +-3336 +40657 +45056 +-3336 +45056 +31858 +58254 +67053 +67053 +75852 +58254 +23059 +9861 +40657 +18660 +27459 +36258 +53855 +75852 +31858 +40657 +49456 +53855 +75852 +49456 +31858 +18660 +58254 +36258 +27459 +53855 +36258 +58254 +71453 +62654 +49456 +62654 +9861 +1063 +40657 +71453 +31858 +67053 +53855 +-34131 +14261 +71453 +31858 +36258 +9861 +1063 +49456 +71453 +58254 +27459 +23059 +14261 +36258 +53855 +31858 +67053 +62654 +31858 +31858 +67053 +75852 +1063 +71453 +62654 +31858 +40657 +62654 +40657 +18660 +75852 +40657 +27459 +1063 +23059 +58254 +14261 +23059 +31858 +75852 +75852 +67053 +45056 +40657 +18660 +62654 +9861 +-16534 +18660 +67053 +71453 +53855 +67053 diff --git a/solution.py b/solution.py new file mode 100644 index 0000000..a29c079 --- /dev/null +++ b/solution.py @@ -0,0 +1,42 @@ +import numpy +import pandas +import sys +from sklearn.linear_model import LinearRegression + +TRAIN_URL = "train/train.tsv" +TEST_A = "test-A" +DEV_0 = "dev-0" + +def get_trained_model(data): + x = numpy.array(data.get('x')).reshape(-1, 1) + y = numpy.array(data.get('y')).reshape(-1, 1) + m = LinearRegression() + m.fit(x, y) + return m + + +def prepare_model(): + csv = pandas.read_csv(TRAIN_URL, sep='\t', header=None, index_col=None) + data = {'x': csv[2].tolist(), 'y': csv[0].tolist()} + model = get_trained_model(data) + return model + + +def calculate_prediction(path, prepared_model): + data_frame = pandas.read_csv(path + '/in.tsv', sep='\t', header=None, index_col=None) + input_array = numpy.array(data_frame[1].tolist()).reshape(-1, 1) + prediction = prepared_model.predict(input_array) + numpy.savetxt(path + "/out.tsv", prediction, fmt="%d", delimiter='\n') + + +def predict_dev_zero(prepared_model): + calculate_prediction(DEV_0, prepared_model) + + +def predict_test_a(prepared_model): + calculate_prediction(TEST_A, prepared_model) + + +prepared_model = prepare_model() +predict_dev_zero(prepared_model) +predict_test_a(prepared_model) diff --git a/test-A/out.tsv b/test-A/out.tsv new file mode 100644 index 0000000..c4a0a5a --- /dev/null +++ b/test-A/out.tsv @@ -0,0 +1,1000 @@ +45056 +36258 +23059 +5462 +1063 +18660 +27459 +14261 +62654 +53855 +5462 +49456 +9861 +45056 +-25333 +1063 +27459 +58254 +36258 +40657 +67053 +9861 +14261 +45056 +5462 +36258 +36258 +23059 +71453 +31858 +58254 +27459 +23059 +-3336 +27459 +1063 +62654 +45056 +71453 +36258 +27459 +53855 +45056 +36258 +58254 +49456 +40657 +9861 +31858 +36258 +58254 +71453 +27459 +49456 +14261 +27459 +71453 +45056 +71453 +75852 +36258 +67053 +45056 +18660 +23059 +67053 +14261 +9861 +40657 +75852 +67053 +75852 +36258 +53855 +45056 +23059 +23059 +23059 +67053 +5462 +18660 +45056 +58254 +58254 +40657 +58254 +71453 +23059 +14261 +62654 +36258 +53855 +71453 +9861 +31858 +58254 +27459 +23059 +58254 +23059 +75852 +27459 +27459 +36258 +45056 +71453 +67053 +27459 +18660 +5462 +36258 +14261 +23059 +27459 +23059 +67053 +5462 +75852 +-12134 +53855 +36258 +27459 +31858 +5462 +31858 +27459 +31858 +27459 +58254 +36258 +49456 +27459 +31858 +5462 +49456 +67053 +36258 +62654 +23059 +31858 +45056 +31858 +53855 +-7735 +36258 +18660 +62654 +45056 +53855 +18660 +62654 +71453 +71453 +53855 +14261 +67053 +67053 +27459 +40657 +49456 +5462 +-7735 +45056 +18660 +49456 +49456 +31858 +36258 +62654 +62654 +71453 +-7735 +23059 +58254 +58254 +14261 +40657 +71453 +62654 +62654 +58254 +58254 +27459 +-3336 +58254 +58254 +31858 +58254 +75852 +36258 +31858 +23059 +23059 +31858 +23059 +9861 +49456 +58254 +18660 +40657 +58254 +31858 +23059 +31858 +71453 +45056 +49456 +18660 +31858 +49456 +31858 +1063 +31858 +-3336 +31858 +23059 +27459 +23059 +31858 +9861 +27459 +9861 +71453 +1063 +5462 +9861 +18660 +67053 +9861 +53855 +-16534 +-16534 +62654 +62654 +36258 +14261 +58254 +31858 +49456 +27459 +-12134 +5462 +67053 +9861 +23059 +27459 +36258 +23059 +67053 +58254 +14261 +58254 +62654 +71453 +71453 +-3336 +36258 +31858 +75852 +53855 +31858 +67053 +71453 +9861 +71453 +31858 +27459 +75852 +5462 +58254 +31858 +31858 +49456 +67053 +14261 +18660 +14261 +27459 +75852 +18660 +53855 +5462 +53855 +49456 +31858 +58254 +67053 +75852 +18660 +53855 +45056 +49456 +49456 +31858 +53855 +27459 +53855 +27459 +36258 +58254 +67053 +53855 +62654 +62654 +62654 +49456 +49456 +1063 +75852 +40657 +36258 +9861 +67053 +62654 +18660 +67053 +40657 +18660 +36258 +58254 +36258 +40657 +53855 +18660 +23059 +71453 +53855 +27459 +53855 +27459 +-34131 +27459 +67053 +71453 +31858 +40657 +36258 +14261 +62654 +71453 +75852 +45056 +45056 +71453 +75852 +14261 +23059 +40657 +71453 +62654 +58254 +53855 +71453 +18660 +45056 +18660 +27459 +18660 +31858 +45056 +67053 +31858 +18660 +27459 +1063 +36258 +62654 +36258 +45056 +67053 +53855 +75852 +49456 +36258 +40657 +36258 +71453 +75852 +18660 +31858 +75852 +36258 +53855 +27459 +27459 +36258 +40657 +18660 +9861 +18660 +9861 +36258 +40657 +18660 +53855 +36258 +1063 +62654 +40657 +31858 +75852 +1063 +53855 +49456 +27459 +1063 +53855 +14261 +27459 +58254 +62654 +36258 +58254 +53855 +58254 +49456 +18660 +71453 +9861 +36258 +53855 +45056 +75852 +-7735 +71453 +45056 +31858 +53855 +75852 +36258 +45056 +23059 +75852 +5462 +14261 +36258 +36258 +71453 +71453 +31858 +75852 +67053 +53855 +23059 +31858 +62654 +23059 +45056 +62654 +58254 +-20933 +9861 +-34131 +23059 +36258 +71453 +9861 +53855 +27459 +-3336 +36258 +5462 +23059 +31858 +62654 +27459 +53855 +45056 +-7735 +-38531 +31858 +1063 +58254 +36258 +31858 +23059 +58254 +9861 +23059 +62654 +-7735 +58254 +71453 +71453 +9861 +49456 +53855 +53855 +31858 +27459 +-3336 +-7735 +31858 +31858 +62654 +40657 +36258 +58254 +49456 +49456 +40657 +71453 +18660 +62654 +18660 +23059 +58254 +31858 +-47329 +67053 +67053 +9861 +67053 +45056 +58254 +53855 +40657 +75852 +27459 +45056 +62654 +45056 +36258 +31858 +75852 +-3336 +5462 +-3336 +9861 +40657 +31858 +53855 +1063 +49456 +49456 +18660 +1063 +75852 +53855 +58254 +53855 +67053 +31858 +75852 +58254 +40657 +27459 +31858 +67053 +31858 +36258 +36258 +36258 +62654 +40657 +71453 +49456 +45056 +67053 +36258 +-3336 +45056 +27459 +14261 +71453 +62654 +58254 +23059 +49456 +71453 +67053 +45056 +14261 +45056 +53855 +45056 +75852 +14261 +14261 +67053 +-7735 +9861 +62654 +45056 +-25333 +58254 +40657 +45056 +75852 +-12134 +27459 +23059 +36258 +58254 +67053 +-3336 +14261 +18660 +36258 +67053 +40657 +-3336 +27459 +23059 +49456 +23059 +18660 +23059 +58254 +-3336 +62654 +53855 +62654 +71453 +27459 +71453 +9861 +31858 +5462 +40657 +58254 +27459 +53855 +75852 +31858 +53855 +18660 +1063 +31858 +71453 +45056 +-7735 +67053 +36258 +62654 +53855 +49456 +40657 +71453 +40657 +71453 +9861 +62654 +31858 +27459 +18660 +27459 +49456 +45056 +9861 +62654 +9861 +62654 +49456 +58254 +67053 +1063 +75852 +67053 +31858 +67053 +18660 +58254 +5462 +-3336 +23059 +27459 +36258 +14261 +31858 +5462 +53855 +-3336 +1063 +53855 +40657 +75852 +58254 +62654 +53855 +27459 +18660 +75852 +31858 +5462 +36258 +23059 +14261 +45056 +1063 +27459 +40657 +9861 +36258 +53855 +-7735 +9861 +18660 +36258 +67053 +49456 +23059 +75852 +27459 +-20933 +40657 +58254 +45056 +45056 +14261 +18660 +40657 +40657 +71453 +31858 +36258 +49456 +75852 +27459 +14261 +23059 +45056 +71453 +40657 +75852 +14261 +58254 +71453 +62654 +5462 +27459 +67053 +27459 +75852 +71453 +18660 +49456 +53855 +14261 +31858 +36258 +58254 +9861 +75852 +49456 +40657 +27459 +18660 +40657 +23059 +31858 +31858 +5462 +40657 +14261 +71453 +71453 +67053 +27459 +75852 +-3336 +67053 +67053 +71453 +-69326 +49456 +75852 +14261 +58254 +36258 +71453 +36258 +18660 +-3336 +75852 +27459 +14261 +49456 +53855 +36258 +18660 +67053 +67053 +58254 +45056 +36258 +31858 +49456 +45056 +71453 +1063 +27459 +49456 +49456 +27459 +40657 +9861 +62654 +1063 +58254 +14261 +71453 +18660 +31858 +62654 +-3336 +58254 +-7735 +45056 +31858 +27459 +18660 +31858 +58254 +40657 +23059 +75852 +-12134 +49456 +49456 +9861 +14261 +58254 +18660 +18660 +71453 +18660 +49456 +18660 +18660 +36258 +1063 +58254 +71453 +18660 +75852 +36258 +67053 +14261 +-16534 +45056 +40657 +67053 +36258 +23059 +49456 +27459 +36258 +49456 +27459 +27459 +31858 +49456 +53855 +27459 +27459 +75852 +-3336 +36258 +53855 +71453 +62654 +27459 +23059 +18660 +36258 +36258 +5462 +40657 +45056 +58254 +45056 +71453 +31858 +36258 +31858 +1063 +14261 +53855 +27459 +5462 +67053 +14261 +31858 +14261 +-16534 +18660 +31858 +-3336 +18660 +75852 +36258 +45056 +31858 +75852 +14261 +62654 +27459 +18660 +27459 +36258 +40657 +71453 +71453 +9861 +67053 +49456 +36258 +71453 +40657 +14261 +5462 +36258 +53855 +40657 +36258 +49456 +-3336 +31858 +27459 +23059 +-3336 +-29732 +14261 +49456 +58254 +18660 +45056 +71453 +36258 +31858 +58254 +-7735 +14261 +9861 +31858 +40657 +23059 +49456 +23059 +75852 +-3336 +36258 +45056 +9861 +71453 +53855 +18660 +49456 +40657 +-3336 +23059 +75852 +62654 +1063 +58254 +45056 +18660 +40657 +49456 +18660 +14261 +75852 +40657 +27459 +58254 +58254 +67053 +31858 +40657 +62654 +36258 +71453 +14261 +27459 +40657 +62654 +-25333 +40657 +53855 +1063 +53855 +18660 +23059 +53855 +14261 +23059 +75852 +27459 +36258 +45056 +58254 +62654 +27459 +75852 +23059 +62654 +62654 +62654 +1063