fork download
  1. # # __author__ = 'Sony'
  2. import sys
  3. import scipy.optimize, scipy.special
  4. from numpy import *
  5. from matplotlib import pyplot, cm
  6. from mpl_toolkits.mplot3d import Axes3D
  7.  
  8. # EX_DIRECTORY_PATH = 'C:\Users\Sony\OneDrive\#my lab\NeuralNets'
  9.  
  10. def plot_samples(data, theta = None, test = None):
  11. X, y = data[:, 0], data[:, 1]
  12. pyplot.xlabel("X - axis")
  13. pyplot.ylabel("Y - axis")
  14. pyplot.plot(X, y, 'rx', markersize=5 )
  15.  
  16. if theta is not None: #plot data set with the theta calculated using gradient decs
  17. y = theta[0] + theta[1]*X
  18. pyplot.plot(X, y)
  19. if test is not None: #test case for prediction
  20. y = test[:, :].dot(theta)
  21. pyplot.plot(test[:, 1], y, 'yo', markersize=10 )
  22.  
  23. pyplot.show()
  24. pyplot.close()
  25.  
  26. def cost( theta, data ):
  27. X, y = data[:, 0], data[:, 1]
  28. m = shape(X)[0]
  29. y = y.reshape(m, 1)
  30. X = c_[ones((m, 1)), X]
  31.  
  32. J = X.dot(theta) - y
  33. # print((J.T.dot(J) / (2*m)) [0, 0])
  34.  
  35. return (J.T.dot(J) / (2*m)) [0, 0]
  36.  
  37. def gradDesc(theta, data, alpha = None, iterations = None):
  38. X = data[:, 0]
  39. y = data[:, 1]
  40. m = shape(X)[0]
  41. X = c_[ones((m, 1)), X]
  42. y = y.reshape(m, 1)
  43. hypo = X.dot(theta)
  44.  
  45. grad = zeros((2, 1))
  46. if alpha is not None : #"""iterative method"""
  47. for i in range (0, iterations):
  48. hypo = X.dot(grad)
  49. ausi = X.T.dot(hypo - y)
  50. grad -= alpha / m * ausi
  51. else: #returns derivative of cost(), to use fmin_cg in run()
  52. grad = X.T.dot(hypo.reshape(m, 1) - y)/m
  53. # print(grad)
  54. return grad.flatten()
  55.  
  56. def run(theta, data ):
  57. result = scipy.optimize.fmin_cg( cost, fprime=gradDesc, x0=theta, \
  58. args = (data, ), maxiter=1, disp=False, full_output=True )
  59. theta = result[0]
  60. minCost = result[1]
  61. return theta, minCost
  62.  
  63. def iterative_gradDesc(data, theta):
  64. alpha = 0.01
  65. iterations = 1500
  66.  
  67. return gradDesc(theta, data, alpha, iterations)
  68.  
  69. def main():
  70. data = genfromtxt("in.txt", delimiter=',')
  71. theta = zeros((2, 1))
  72. plot_samples(data)
  73. theta, costy = run(theta, data)
  74. # theta = iterative_gradDesc(data, theta)
  75. test = array(([1, 20], [1, 10], [1, 13]))
  76. plot_samples(data, theta, test)
  77.  
  78. # theta0_vals = linspace(-10, 10, 500)
  79. # theta1_vals = linspace(-4, 4, 500)
  80. #
  81. # J_vals = zeros((len(theta0_vals), len(theta1_vals)), dtype=float64)
  82. # for i, v0 in enumerate(theta0_vals):
  83. # for j, v1 in enumerate(theta1_vals):
  84. # theta = array((theta0_vals[i], theta1_vals[j])).reshape(2, 1)
  85. # J_vals[i, j] = cost(theta, data)
  86. #
  87. # R, P = meshgrid(theta0_vals, theta1_vals)
  88. #
  89. # fig = pyplot.figure()
  90. # ax = fig.gca(projection='3d')
  91. # ax.plot_surface(R, P, J_vals)
  92. # pyplot.show(block=True)
  93.  
  94. if __name__ == '__main__':
  95. main()
  96.  
  97.  
Runtime error #stdin #stdout #stderr 0.43s 45480KB
stdin
6.1101,17.592
5.5277,9.1302
8.5186,13.662
7.0032,11.854
5.8598,6.8233
8.3829,11.886
7.4764,4.3483
8.5781,12
6.4862,6.5987
5.0546,3.8166
5.7107,3.2522
14.164,15.505
5.734,3.1551
8.4084,7.2258
5.6407,0.71618
5.3794,3.5129
6.3654,5.3048
5.1301,0.56077
6.4296,3.6518
7.0708,5.3893
6.1891,3.1386
20.27,21.767
5.4901,4.263
6.3261,5.1875
5.5649,3.0825
18.945,22.638
12.828,13.501
10.957,7.0467
13.176,14.692
22.203,24.147
5.2524,-1.22
6.5894,5.9966
9.2482,12.134
5.8918,1.8495
8.2111,6.5426
7.9334,4.5623
8.0959,4.1164
5.6063,3.3928
12.836,10.117
6.3534,5.4974
5.4069,0.55657
6.8825,3.9115
11.708,5.3854
5.7737,2.4406
7.8247,6.7318
7.0931,1.0463
5.0702,5.1337
5.8014,1.844
11.7,8.0043
5.5416,1.0179
7.5402,6.7504
5.3077,1.8396
7.4239,4.2885
7.6031,4.9981
6.3328,1.4233
6.3589,-1.4211
6.2742,2.4756
5.6397,4.6042
9.3102,3.9624
9.4536,5.4141
8.8254,5.1694
5.1793,-0.74279
21.279,17.929
14.908,12.054
18.959,17.054
7.2182,4.8852
8.2951,5.7442
10.236,7.7754
5.4994,1.0173
20.341,20.992
10.136,6.6799
7.3345,4.0259
6.0062,1.2784
7.2259,3.3411
5.0269,-2.6807
6.5479,0.29678
7.5386,3.8845
5.0365,5.7014
10.274,6.7526
5.1077,2.0576
5.7292,0.47953
5.1884,0.20421
6.3557,0.67861
9.7687,7.5435
6.5159,5.3436
8.5172,4.2415
9.1802,6.7981
6.002,0.92695
5.5204,0.152
5.0594,2.8214
5.7077,1.8451
7.6366,4.2959
5.8707,7.2029
5.3054,1.9869
8.2934,0.14454
13.394,9.0551
5.4369,0.61705
stdout
Standard output is empty
stderr
Traceback (most recent call last):
  File "./prog.py", line 5, in <module>
  File "/usr/lib/python3/dist-packages/matplotlib/__init__.py", line 1102, in <module>
    rcParams = rc_params()
  File "/usr/lib/python3/dist-packages/matplotlib/__init__.py", line 949, in rc_params
    fname = matplotlib_fname()
  File "/usr/lib/python3/dist-packages/matplotlib/__init__.py", line 770, in matplotlib_fname
    configdir = _get_configdir()
  File "/usr/lib/python3/dist-packages/matplotlib/__init__.py", line 635, in _get_configdir
    return _get_config_or_cache_dir(_get_xdg_config_dir())
  File "/usr/lib/python3/dist-packages/matplotlib/__init__.py", line 612, in _get_config_or_cache_dir
    return _create_tmp_config_dir()
  File "/usr/lib/python3/dist-packages/matplotlib/__init__.py", line 544, in _create_tmp_config_dir
    tempdir = os.path.join(tempdir, 'matplotlib-%s' % getpass.getuser())
  File "/usr/lib/python3.4/getpass.py", line 170, in getuser
    return pwd.getpwuid(os.getuid())[0]
KeyError: 'getpwuid(): uid not found: 20072'