From 545d996b2be6e6a438736b8689a36bb3b1cc51dc Mon Sep 17 00:00:00 2001 From: AleksandrKhu Date: Sat, 15 Mar 2014 11:01:44 +0400 Subject: [PATCH 1/7] fmin --- khudiakov/fminimum.py | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 khudiakov/fminimum.py diff --git a/khudiakov/fminimum.py b/khudiakov/fminimum.py new file mode 100644 index 0000000..f4559fe --- /dev/null +++ b/khudiakov/fminimum.py @@ -0,0 +1,6 @@ +a=[3, 4, 2, 2, 5, 1] +m=a[0] +for x in a: + if x < m: + m = x +print(m) From 4046e27bfd72f86372dfe943fa951d9e89c2c0d6 Mon Sep 17 00:00:00 2001 From: AleksandrKhu Date: Fri, 11 Apr 2014 09:43:19 +0400 Subject: [PATCH 2/7] First one --- A1_components.py | 75 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 A1_components.py diff --git a/A1_components.py b/A1_components.py new file mode 100644 index 0000000..b3479bc --- /dev/null +++ b/A1_components.py @@ -0,0 +1,75 @@ + +import sys +import threading + + + +def main(): + + # read number of vertices + f = open('components.in') + first_string = f.readline().strip().split(' ') + n = int(first_string[0]) + + #read edges list + next_string = ' ' + edges_list = [] + inner_list = [] + while next_string != ['']: + next_string = f.readline().strip().split(' ') + if next_string != ['']: + inner_list.append(int(next_string[0])-1) + inner_list.append(int(next_string[1])-1) + edges_list.append(inner_list) + inner_list = [] + f.close() + + # make full edges list with reverse edges + rev_edges_list = [] + for i in edges_list: + a = i[::-1] + rev_edges_list.append(a) + full_edges_list = edges_list + rev_edges_list + + #convert edges list to adjacency list + adjacency_list = [] + + for i in range(n): + adjacency_list.append([]) + + for i in full_edges_list: + a = (i[0]) + adjacency_list[a].append(i[1]) + + #dfs + visited = [False] * n + comp_number = 0 + components_list = [-1] * n + + def dfs(v): + components_list[v] = comp_number + visited[v] = True + for w in adjacency_list[v]: + if not visited[w]: + dfs(w) + + #counting components + for v in range(n): + if not visited[v]: + dfs(v) + comp_number += 1 + + + #write to file + + ans = open('components.out', 'w') + ans.write(str(comp_number) + '\n') + for w in components_list: + ans.write(str(int(w) + 1) + ' ') + ans.close() + + +threading.stack_size(2 ** 26) # 64 MB stack size +sys.setrecursionlimit(1000000000) # recursion depth +thread = threading.Thread(target=main) +thread.start() \ No newline at end of file From 7786da947d2db2ab3e96133355f5b10eb805d59b Mon Sep 17 00:00:00 2001 From: AleksandrKhu Date: Fri, 11 Apr 2014 09:49:09 +0400 Subject: [PATCH 3/7] First one --- khudiakov/A1_components.py | 75 ++++++++++++++++++++++++++++ khudiakov/A2_Shortest.py | 50 +++++++++++++++++++ khudiakov/A3_Shortest_with_weight.py | 45 +++++++++++++++++ 3 files changed, 170 insertions(+) create mode 100644 khudiakov/A1_components.py create mode 100644 khudiakov/A2_Shortest.py create mode 100644 khudiakov/A3_Shortest_with_weight.py diff --git a/khudiakov/A1_components.py b/khudiakov/A1_components.py new file mode 100644 index 0000000..b3479bc --- /dev/null +++ b/khudiakov/A1_components.py @@ -0,0 +1,75 @@ + +import sys +import threading + + + +def main(): + + # read number of vertices + f = open('components.in') + first_string = f.readline().strip().split(' ') + n = int(first_string[0]) + + #read edges list + next_string = ' ' + edges_list = [] + inner_list = [] + while next_string != ['']: + next_string = f.readline().strip().split(' ') + if next_string != ['']: + inner_list.append(int(next_string[0])-1) + inner_list.append(int(next_string[1])-1) + edges_list.append(inner_list) + inner_list = [] + f.close() + + # make full edges list with reverse edges + rev_edges_list = [] + for i in edges_list: + a = i[::-1] + rev_edges_list.append(a) + full_edges_list = edges_list + rev_edges_list + + #convert edges list to adjacency list + adjacency_list = [] + + for i in range(n): + adjacency_list.append([]) + + for i in full_edges_list: + a = (i[0]) + adjacency_list[a].append(i[1]) + + #dfs + visited = [False] * n + comp_number = 0 + components_list = [-1] * n + + def dfs(v): + components_list[v] = comp_number + visited[v] = True + for w in adjacency_list[v]: + if not visited[w]: + dfs(w) + + #counting components + for v in range(n): + if not visited[v]: + dfs(v) + comp_number += 1 + + + #write to file + + ans = open('components.out', 'w') + ans.write(str(comp_number) + '\n') + for w in components_list: + ans.write(str(int(w) + 1) + ' ') + ans.close() + + +threading.stack_size(2 ** 26) # 64 MB stack size +sys.setrecursionlimit(1000000000) # recursion depth +thread = threading.Thread(target=main) +thread.start() \ No newline at end of file diff --git a/khudiakov/A2_Shortest.py b/khudiakov/A2_Shortest.py new file mode 100644 index 0000000..8623e77 --- /dev/null +++ b/khudiakov/A2_Shortest.py @@ -0,0 +1,50 @@ + +import sys +import threading + +def main(): + + # read number of vertices + f = open('pathbge1.in') + v, e = (int(i) for i in f.readline().strip().split()) + + + #adjacency list + adjacency_list=[[] for i in range(v)] + for edge in f: + x, y = ((int(i) - 1) for i in edge.strip().split()) + adjacency_list[x].append(y) + adjacency_list[y].append(x) + + #bfs + visited = [False] * v + distance = [-1 for i in range(v)] + + def bfs(start, adjacency_list): + queue = [start] + visited[start] = True + distance[start] = 0 # distance from start vertex to current one + while len(queue) > 0: + + x = queue.pop(0) + + for i in adjacency_list[x]: + if visited[i] == False: + queue.append(i) + visited[i] = True + if distance[i] == -1: + distance[i] = distance[x] + 1 + return distance + + #write to file + + ans = open('pathbge1.out', 'w') + for w in bfs(0, adjacency_list): + ans.write(str(int(w)) + ' ') + ans.close() + + +threading.stack_size(2 ** 26) # 64 MB stack size +sys.setrecursionlimit(1000000000) # recursion depth +thread = threading.Thread(target=main) +thread.start() \ No newline at end of file diff --git a/khudiakov/A3_Shortest_with_weight.py b/khudiakov/A3_Shortest_with_weight.py new file mode 100644 index 0000000..2731459 --- /dev/null +++ b/khudiakov/A3_Shortest_with_weight.py @@ -0,0 +1,45 @@ + +import sys +sys.setrecursionlimit(1000000000) + +#read number of vertices, star and stop points from file +file = open('pathmgep.in', 'r') + +n, s, f = [int(i) for i in file.readline().split()] +s-= 1 +f-= 1 + +#read weight matrix +path = [] +for string in file.read().splitlines(): + weight = [int(i) for i in string.split()] + path.append(weight) +file.close() + +#mark nonexistent paths +for i in range(n): + for j in range(n): + if path[i][j] == -1: + path[i][j] = '-1' + +#may be slow but.. +def FloydWarshall(path): + for k in range(n): + for i in range(n): + for j in range(n): + if path[i][j] != '-1'and path[i][k] != '-1'and path[k][j] != '-1': + path[i][j] = min(path[i][j], (path[i][k] + path[k][j])) + elif path[i][j] != '-1'and (path[i][k] == '-1'or path[k][j] == '-1'): + path[i][j] = path[i][j] + elif path[i][j] == '-1'and path[i][k] != '-1'and path[k][j] != '-1': + path[i][j] = path[i][k] + path[k][j] + else: + path[i][j] = '-1' + return path + +FloydWarshall(path) + + +ans = open('pathmgep.out', 'w') +ans.write(str(path[s][f])) +ans.close() \ No newline at end of file From 8e2791f076b818b7246ec5bb00fa3e17fd6f233b Mon Sep 17 00:00:00 2001 From: AleksandrKhu Date: Fri, 11 Apr 2014 09:55:46 +0400 Subject: [PATCH 4/7] fmin removed --- khudiakov/fminimum.py | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 khudiakov/fminimum.py diff --git a/khudiakov/fminimum.py b/khudiakov/fminimum.py deleted file mode 100644 index f4559fe..0000000 --- a/khudiakov/fminimum.py +++ /dev/null @@ -1,6 +0,0 @@ -a=[3, 4, 2, 2, 5, 1] -m=a[0] -for x in a: - if x < m: - m = x -print(m) From 56f5cc17fb6be45e6a42c38124f0d864cd7b6be2 Mon Sep 17 00:00:00 2001 From: AleksandrKhu Date: Fri, 11 Apr 2014 09:58:03 +0400 Subject: [PATCH 5/7] Delete A1_components.py deleted --- A1_components.py | 75 ------------------------------------------------ 1 file changed, 75 deletions(-) delete mode 100644 A1_components.py diff --git a/A1_components.py b/A1_components.py deleted file mode 100644 index b3479bc..0000000 --- a/A1_components.py +++ /dev/null @@ -1,75 +0,0 @@ - -import sys -import threading - - - -def main(): - - # read number of vertices - f = open('components.in') - first_string = f.readline().strip().split(' ') - n = int(first_string[0]) - - #read edges list - next_string = ' ' - edges_list = [] - inner_list = [] - while next_string != ['']: - next_string = f.readline().strip().split(' ') - if next_string != ['']: - inner_list.append(int(next_string[0])-1) - inner_list.append(int(next_string[1])-1) - edges_list.append(inner_list) - inner_list = [] - f.close() - - # make full edges list with reverse edges - rev_edges_list = [] - for i in edges_list: - a = i[::-1] - rev_edges_list.append(a) - full_edges_list = edges_list + rev_edges_list - - #convert edges list to adjacency list - adjacency_list = [] - - for i in range(n): - adjacency_list.append([]) - - for i in full_edges_list: - a = (i[0]) - adjacency_list[a].append(i[1]) - - #dfs - visited = [False] * n - comp_number = 0 - components_list = [-1] * n - - def dfs(v): - components_list[v] = comp_number - visited[v] = True - for w in adjacency_list[v]: - if not visited[w]: - dfs(w) - - #counting components - for v in range(n): - if not visited[v]: - dfs(v) - comp_number += 1 - - - #write to file - - ans = open('components.out', 'w') - ans.write(str(comp_number) + '\n') - for w in components_list: - ans.write(str(int(w) + 1) + ' ') - ans.close() - - -threading.stack_size(2 ** 26) # 64 MB stack size -sys.setrecursionlimit(1000000000) # recursion depth -thread = threading.Thread(target=main) -thread.start() \ No newline at end of file From f50204ddda22bfc8d336f21ab7d6151d169c4f60 Mon Sep 17 00:00:00 2001 From: AleksandrKhu Date: Fri, 11 Apr 2014 09:58:16 +0400 Subject: [PATCH 6/7] Delete fminimum.py --- khudiakov/fminimum.py | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 khudiakov/fminimum.py diff --git a/khudiakov/fminimum.py b/khudiakov/fminimum.py deleted file mode 100644 index f4559fe..0000000 --- a/khudiakov/fminimum.py +++ /dev/null @@ -1,6 +0,0 @@ -a=[3, 4, 2, 2, 5, 1] -m=a[0] -for x in a: - if x < m: - m = x -print(m) From 782fca236fb8a16ee538d2133388ebed063525e4 Mon Sep 17 00:00:00 2001 From: AleksandrKhu Date: Fri, 18 Apr 2014 21:53:50 +0400 Subject: [PATCH 7/7] Linear regression --- linear_regression/Khudiakov_regr.ipynb | 312 +++++++++++++++++++++++++ linear_regression/LinReg_Khudiakov.py | 96 ++++++++ 2 files changed, 408 insertions(+) create mode 100644 linear_regression/Khudiakov_regr.ipynb create mode 100644 linear_regression/LinReg_Khudiakov.py diff --git a/linear_regression/Khudiakov_regr.ipynb b/linear_regression/Khudiakov_regr.ipynb new file mode 100644 index 0000000..bd39364 --- /dev/null +++ b/linear_regression/Khudiakov_regr.ipynb @@ -0,0 +1,312 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:5a8aaec66618968ed891a2622bab66761f1881f45a3b30f3300d82bbfd05fed9" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import IPython" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 1 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import numpy as np\n", + "x = np.linspace(0, 1000, 1000) \n", + "\n", + "y = 15 * x + 10000" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 2 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import scipy as sc\n", + "noise = np.random.normal(0,10000,1000)" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 3 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "y_noise = y + noise" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 4 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import sklearn" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 5 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "X_train1 = []\n", + "X_test1 = []\n", + "y_train1 = []\n", + "y_test1 = []\n", + "for i in range (len(x)):\n", + " if i%2 == 0:\n", + " X_train1.append(x[i]) \n", + " y_train1.append(y_noise[i]) \n", + " else:\n", + " X_test1.append(x[i]) \n", + " y_test1.append(y_noise[i])\n", + "X_train=np.asarray(X_train1)\n", + "X_test=np.asarray(X_test1)\n", + "y_train=np.asarray(y_train1)\n", + "y_test=np.asarray(y_test1)\n", + "X_train = X_train.reshape(X_train.size, 1)\n", + "X_test = X_test.reshape(X_test.size, 1)" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 6 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from sklearn import linear_model\n", + "regr = linear_model.LinearRegression()" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 7 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "regr.fit(X_train, y_train)\n", + "print 'Regression coeff for train', regr.coef_[0]\n", + "print 'Regression intercept for train', regr.intercept_\n", + "regr.fit(X_test, y_test)\n", + "print 'Regression coeff for test', regr.coef_[0]\n", + "print 'Regression intercept for test', regr.intercept_\n", + "print \"Training error: \", np.mean((regr.predict(X_train) - y_train) ** 2)\n", + "print \"Test error: \", np.mean((regr.predict(X_test) - y_test) ** 2)\n" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "Regression coeff for train 18.1413431282\n", + "Regression intercept for train 7991.89958484\n", + "Regression coeff for test 17.6912607253\n", + "Regression intercept for test 8705.03851041\n", + "Training error: 100814484.037\n", + "Test error: 96755480.5969\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from scipy import stats\n", + "\n", + "slope, intercept, r_value, p_value, std_err = stats.linregress(X_train1,y_train1)\n", + "line_train = slope * X_train + intercept\n", + "err_train=sqrt(sum((line_train - y_train1)**2)/len(y_train1))\n", + "print 'RSS train', err_train \n", + "\n", + "slope, intercept, r_value, p_value, std_err = stats.linregress(X_test1,y_test1)\n", + "line_test = slope * X_test + intercept\n", + "err_test=sqrt(sum((line_test - y_test1)**2)/len(y_test1))\n", + "print 'RSS test', err_test " + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "RSS train 278854.93172\n", + "RSS test 272968.135626\n" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "slope, intercept, r_value, p_value, std_err = stats.linregress(x, y_noise)\n", + "print 'r value', r_value\n", + "print 'R2 value', r_value ** 2\n", + "\n", + "line_total = slope * x + intercept\n", + "err_total = sqrt(sum((line_total - y_noise)**2)/len(y_noise))\n", + "print'RSS total', err_total" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "r value 0.462121663236\n", + "R2 value 0.213556431632\n", + "RSS total 9935.84840776\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import scipy.stats as stats\n", + "import statsmodels.api as sm\n", + "result = sm.OLS(y_noise, x).fit()\n", + "N = result.nobs\n", + "P = result.df_model\n", + "dfn, dfd = P, N - P - 1\n", + "F = result.mse_model / result.mse_resid\n", + "p = 1.0 - stats.f.cdf(F,dfn,dfd)\n", + "print 'F-statistic: {:.3f}, p-value (95% confidence interval): {}'.format( F, p )" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "F-statistic: 2656.214, p-value (95% confidence interval): 1.11022302463e-16\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "plt.plot(X_train, y_train, '.', color = 'blue', label =\"training set\")\n", + "plt.plot(X_test, y_test, '.', color = 'green', label =\"test set\")\n", + "plt.plot(x, y, '-', color = 'yellow', linewidth=2, label = 'original line')\n", + "plt.plot(X_test, regr.predict(X_test), '-', color = 'red', linewidth = 2, label = 'predicted line')\n", + "plt.xlabel('x')\n", + "plt.ylabel('y')\n", + "legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=3, ncol=2, mode=\"expand\", borderaxespad=0.)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 12, + "text": [ + "" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\n", + "text": [ + "" + ] + } + ], + "prompt_number": 12 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "plt.plot(x, y_noise, '.', color = 'blue', label =\"values\")\n", + "x_arr = np.asarray(x)\n", + "x_arr=x.reshape(x.size, 1)\n", + "count = 0\n", + "for i in range (len(y_noise)):\n", + " if (regr.predict(x[i]) - y_noise[i])**2 < (err_total)**2:\n", + " if count == 0:\n", + " plt.plot(x[i], y_noise[i], '*', color = 'yellow', marker='o', label = 'values within RSS')\n", + " count = 1\n", + " else:\n", + " plt.plot(x[i], y_noise[i], '*', color = 'yellow', marker='o')\n", + "plt.plot(x_arr, regr.predict(x_arr), '-', color = 'red', linewidth = 2, label = 'predicted line')\n", + "plt.xlabel('x')\n", + "plt.ylabel('y')\n", + "legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=3, ncol=2, mode=\"expand\", borderaxespad=0.)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "pyout", + "prompt_number": 13, + "text": [ + "" + ] + }, + { + "metadata": {}, + "output_type": "display_data", + "png": "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\n/x+EvI+MKHgOJAAAAABJRU5ErkJggg==\n", + "text": [ + "" + ] + } + ], + "prompt_number": 13 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +} \ No newline at end of file diff --git a/linear_regression/LinReg_Khudiakov.py b/linear_regression/LinReg_Khudiakov.py new file mode 100644 index 0000000..013fde8 --- /dev/null +++ b/linear_regression/LinReg_Khudiakov.py @@ -0,0 +1,96 @@ +import numpy as np +import scipy as sc +import scipy.stats as stats +import matplotlib.pyplot as plt +import math +from math import sqrt +import sklearn +from sklearn import linear_model +regr = linear_model.LinearRegression() +import scipy.stats as stats +import statsmodels.api as sm + +x = np.linspace(0, 1000, 1000) +y = 15 * x + 10000 + +noise = np.random.normal(0, 10000, 1000) +y_noise = y + noise + +X_train1 = [] +X_test1 = [] +y_train1 = [] +y_test1 = [] +for i in range(len(x)): + if i%2 == 0: + X_train1.append(x[i]) + y_train1.append(y_noise[i]) + else: + X_test1.append(x[i]) + y_test1.append(y_noise[i]) +X_train=np.asarray(X_train1) +X_test=np.asarray(X_test1) +y_train=np.asarray(y_train1) +y_test=np.asarray(y_test1) +X_train = X_train.reshape(X_train.size, 1) +X_test = X_test.reshape(X_test.size, 1) + +regr.fit(X_train, y_train) +print 'Regression coeff for train', regr.coef_[0] +print 'Regression intercept for train', regr.intercept_ +regr.fit(X_test, y_test) +print 'Regression coeff for test', regr.coef_[0] +print 'Regression intercept for test', regr.intercept_ +print "Training error: ", np.mean((regr.predict(X_train) - y_train) ** 2) +print "Test error: ", np.mean((regr.predict(X_test) - y_test) ** 2) + +slope, intercept, r_value, p_value, std_err = stats.linregress(X_train1,y_train1) +line_train = slope * X_train + intercept +err_train=sqrt(np.sum((line_train - y_train1)**2)/len(y_train1)) +print 'RSS train', err_train + +slope, intercept, r_value, p_value, std_err = stats.linregress(X_test1,y_test1) +line_test = slope * X_test + intercept +err_test=sqrt(np.sum((line_test - y_test1)**2)/len(y_test1)) +print 'RSS test', err_test + +slope, intercept, r_value, p_value, std_err = stats.linregress(x, y_noise) +print 'r value', r_value +print 'R2 value', r_value ** 2 + +line_total = slope * x + intercept +err_total = sqrt(np.sum((line_total - y_noise)**2)/len(y_noise)) +print'RSS total', err_total + +result = sm.OLS(y_noise, x).fit() +N = result.nobs +P = result.df_model +dfn, dfd = P, N - P - 1 +F = result.mse_model / result.mse_resid +p = 1.0 - stats.f.cdf(F,dfn,dfd) +print 'F-statistic: {:.3f}, p-value (95% confidence interval): {}'.format( F, p ) + +plt.plot(X_train, y_train, '.', color='blue', label="training set") +plt.plot(X_test, y_test, '.', color='green', label="test set") +plt.plot(x, y, '-', color='yellow', linewidth=2, label='original line') +plt.plot(X_test, regr.predict(X_test), '-', color = 'red', linewidth = 2, label = 'predicted line') +plt.xlabel('x') +plt.ylabel('y') +plt.legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=3, ncol=2, mode="expand", borderaxespad=0.) +plt.show() + +plt.plot(x, y_noise, '.', color='blue', label="values") +x_arr = np.asarray(x) +x_arr = x.reshape(x.size, 1) +count = 0 +for i in range (len(y_noise)): + if (regr.predict(x[i]) - y_noise[i])**2 < (err_total)**2: + if count == 0: + plt.plot(x[i], y_noise[i], '*', color = 'yellow', marker='o', label = 'values within RSS') + count = 1 + else: + plt.plot(x[i], y_noise[i], '*', color = 'yellow', marker='o') +plt.plot(x_arr, regr.predict(x_arr), '-', color = 'red', linewidth = 2, label = 'predicted line') +plt.xlabel('x') +plt.ylabel('y') +plt.legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=3, ncol=2, mode="expand", borderaxespad=0.) +plt.show() \ No newline at end of file