Linear regression using Batch Gradient Descent

Building linear regression from ground up


In [1]:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

Our Linear Regression Model

This python class contains our Linear Regression model/algo. We use the OOP's concepts to impart the model's behaviour to a python class. This class contains methods to train, predict and plot the cost curve.


In [2]:
class linear_regression():
       
    def __init__(self):
        self.weights = None
        self.learning_rate = None
        self.epochs = None
        self.trainx = None
        self.trainy = None
        self.costcurve = []
        print('Status: Model Initialized')
    
    def train(self, trainx, trainy, learning_rate, epochs):
        # np.random.seed(10)
        self.trainx = trainx
        self.trainy = trainy
        self.learning_rate = learning_rate
        self.epochs = epochs
        
        # self.weights = np.random.randn(self.trainx.shape[1]+1)
        self.weights = np.random.uniform(low=0.0, high=inputx.shape[1]**0.5, size=inputx.shape[1]+1)
        self.trainx = np.append(self.trainx,np.ones((self.trainx.shape[0],1)), axis=1)
        
        for epoch in range(epochs):
            output = np.dot(self.trainx, self.weights)
            output = np.reshape(output, (output.shape[0],1))
            error = np.subtract(self.trainy, output)
            total_error = np.sum(error)
            cost = np.mean(error**2)
            self.costcurve.append([epoch+1, cost])
            gradients = (self.learning_rate / self.trainx.shape[0]) * np.dot(error.T, self.trainx)
            gradients = np.reshape(gradients, (gradients.T.shape[0],))
            self.weights += gradients
            print('step:{0} \n cost:{1}'.format(epoch+1, cost))
            
        # return self.weights
    
    def plotCostCurve(self):
        costcurvearray = np.array(self.costcurve)
        plt.plot(costcurvearray[:,0],costcurvearray[:,1])
        plt.xlabel('Epochs')
        plt.ylabel('Cost')
        plt.show()
    
    def predict(self, validatex):
        validatex_new = np.append(validatex,np.ones((validatex.shape[0],1)), axis=1)
        predict = np.dot(validatex_new, self.weights)
        return np.reshape(predict, (predict.shape[0],1))

Ingesting Sample Data

We are using the MPG dataset from UCI Datasets to test our implementation. http://archive.ics.uci.edu/ml/datasets/Auto+MPG


In [3]:
mpg_data = np.genfromtxt('mpg.txt', delimiter=',', dtype='float')
print(mpg_data.shape)

mpg_data = mpg_data[~np.isnan(mpg_data).any(axis=1)]

inputx = mpg_data[:,1:8]

for i in range(inputx.shape[1]):
    inputx[:,i] = (inputx[:,i]-np.min(inputx[:,i]))/(np.max(inputx[:,i])-np.min(inputx[:,i]))

inputy = np.reshape(mpg_data[:,0],(mpg_data.shape[0],1))


(398, 7)

In [4]:
model = linear_regression()
model.train(inputx, inputy, 0.01, 1000)


Status: Model Initialized
step:1 
 cost:432.38491761916396
step:2 
 cost:418.5565784996569
step:3 
 cost:405.28966171550223
step:4 
 cost:392.56076318700315
step:5 
 cost:380.34745770024387
step:6 
 cost:368.6282579497156
step:7 
 cost:357.38257529475277
step:8 
 cost:346.5906821580691
step:9 
 cost:336.23367599767994
step:10 
 cost:326.2934447863744
step:11 
 cost:316.75263393565587
step:12 
 cost:307.59461460370727
step:13 
 cost:298.80345332946956
step:14 
 cost:290.36388293734143
step:15 
 cost:282.2612746593349
step:16 
 cost:274.48161142374073
step:17 
 cost:267.01146226149444
step:18 
 cost:259.83795778347263
step:19 
 cost:252.94876668390756
step:20 
 cost:246.33207322698433
step:21 
 cost:239.97655567547818
step:22 
 cost:233.87136562201522
step:23 
 cost:228.00610818518606
step:24 
 cost:222.37082303432382
step:25 
 cost:216.9559662082714
step:26 
 cost:211.75239269491536
step:27 
 cost:206.75133973965143
step:28 
 cost:201.9444108522817
step:29 
 cost:197.323560483117
step:30 
 cost:192.8810793402834
step:31 
 cost:188.60958032140115
step:32 
 cost:184.5019850339297
step:33 
 cost:180.55151087954476
step:34 
 cost:176.7516586789482
step:35 
 cost:173.09620081449486
step:36 
 cost:169.57916986897047
step:37 
 cost:166.1948477397587
step:38 
 cost:162.93775520850542
step:39 
 cost:159.8026419472203
step:40 
 cost:156.7844769425543
step:41 
 cost:153.87843932075302
step:42 
 cost:151.07990955652252
step:43 
 cost:148.3844610497409
step:44 
 cost:145.78785205462526
step:45 
 cost:143.28601794660455
step:46 
 cost:140.87506381276876
step:47 
 cost:138.5512573523533
step:48 
 cost:136.31102207428657
step:49 
 cost:134.15093077937007
step:50 
 cost:132.0676993151807
step:51 
 cost:130.05818059228383
step:52 
 cost:128.11935885082266
step:53 
 cost:126.24834416700723
step:54 
 cost:124.44236718946487
step:55 
 cost:122.69877409583346
step:56 
 cost:121.01502176038211
step:57 
 cost:119.38867312382861
step:58 
 cost:117.81739275689361
step:59 
 cost:116.29894260948396
step:60 
 cost:114.83117793773856
step:61 
 cost:113.41204340149397
step:62 
 cost:112.03956932503856
step:63 
 cost:110.71186811432288
step:64 
 cost:109.42713082407977
step:65 
 cost:108.18362386858043
step:66 
 cost:106.97968587001753
step:67 
 cost:105.81372463875543
step:68 
 cost:104.68421427993019
step:69 
 cost:103.5896924211125
step:70 
 cost:102.52875755596749
step:71 
 cost:101.5000664990579
step:72 
 cost:100.50233194714001
step:73 
 cost:99.53432014249609
step:74 
 cost:98.59484863403382
step:75 
 cost:97.68278413206203
step:76 
 cost:96.79704045282267
step:77 
 cost:95.93657654902334
step:78 
 cost:95.10039462277214
step:79 
 cost:94.28753831746627
step:80 
 cost:93.49709098533123
step:81 
 cost:92.72817402744472
step:82 
 cost:91.97994530321262
step:83 
 cost:91.25159760639036
step:84 
 cost:90.542357204866
step:85 
 cost:89.85148244153608
step:86 
 cost:89.17826239371878
step:87 
 cost:88.52201558865431
step:88 
 cost:87.88208877274627
step:89 
 cost:87.25785573229446
step:90 
 cost:86.64871616356571
step:91 
 cost:86.05409459013698
step:92 
 cost:85.47343932553375
step:93 
 cost:84.90622147926787
step:94 
 cost:84.35193400445908
step:95 
 cost:83.81009078530008
step:96 
 cost:83.28022576269804
step:97 
 cost:82.76189209649523
step:98 
 cost:82.25466136273813
step:99 
 cost:81.75812278452825
step:100 
 cost:81.27188249504997
step:101 
 cost:80.7955628314286
step:102 
 cost:80.32880165812887
step:103 
 cost:79.8712517186577
step:104 
 cost:79.422580014387
step:105 
 cost:78.98246720936157
step:106 
 cost:78.55060706000506
step:107 
 cost:78.12670586868194
step:108 
 cost:77.71048196011753
step:109 
 cost:77.30166517971927
step:110 
 cost:76.89999641288345
step:111 
 cost:76.50522712440859
step:112 
 cost:76.11711891717479
step:113 
 cost:75.73544310928251
step:114 
 cost:75.35998032887858
step:115 
 cost:74.99052012592934
step:116 
 cost:74.62686060023178
step:117 
 cost:74.26880804498346
step:118 
 cost:73.91617660525955
step:119 
 cost:73.56878795077435
step:120 
 cost:73.22647096232843
step:121 
 cost:72.88906143136963
step:122 
 cost:72.55640177211876
step:123 
 cost:72.22834074573446
step:124 
 cost:71.90473319601341
step:125 
 cost:71.58543979614332
step:126 
 cost:71.27032680604611
step:127 
 cost:70.95926583986831
step:128 
 cost:70.65213364319405
step:129 
 cost:70.34881187957387
step:130 
 cost:70.0491869259795
step:131 
 cost:69.75314967681123
step:132 
 cost:69.46059535610006
step:133 
 cost:69.17142333756148
step:134 
 cost:68.8855369721729
step:135 
 cost:68.60284342295935
step:136 
 cost:68.3232535066863
step:137 
 cost:68.04668154217039
step:138 
 cost:67.7730452049312
step:139 
 cost:67.50226538791887
step:140 
 cost:67.23426606806332
step:141 
 cost:66.96897417840123
step:142 
 cost:66.70631948554808
step:143 
 cost:66.44623447229077
step:144 
 cost:66.18865422508728
step:145 
 cost:65.93351632626775
step:146 
 cost:65.68076075074028
step:147 
 cost:65.4303297670131
step:148 
 cost:65.18216784235248
step:149 
 cost:64.93622155190334
step:150 
 cost:64.69243949160672
step:151 
 cost:64.45077219475542
step:152 
 cost:64.2111720520354
step:153 
 cost:63.973593234907426
step:154 
 cost:63.73799162218872
step:155 
 cost:63.50432472970133
step:156 
 cost:63.272551642858424
step:157 
 cost:63.0426329520659
step:158 
 cost:62.814530690821535
step:159 
 cost:62.588208276398554
step:160 
 cost:62.36363045300583
step:161 
 cost:62.14076323732098
step:162 
 cost:61.919573866297064
step:163 
 cost:61.70003074714766
step:164 
 cost:61.4821034094196
step:165 
 cost:61.26576245906565
step:166 
 cost:61.05097953443345
step:167 
 cost:60.83772726409103
step:168 
 cost:60.62597922641143
step:169 
 cost:60.4157099108434
step:170 
 cost:60.20689468079735
step:171 
 cost:59.999509738078984
step:172 
 cost:59.79353208880614
step:173 
 cost:59.588939510746464
step:174 
 cost:59.38571052201678
step:175 
 cost:59.183824351086884
step:176 
 cost:58.98326090803366
step:177 
 cost:58.78400075699276
step:178 
 cost:58.586025089758074
step:179 
 cost:58.38931570048081
step:180 
 cost:58.19385496142232
step:181 
 cost:57.99962579971655
step:182 
 cost:57.80661167509983
step:183 
 cost:57.614796558567775
step:184 
 cost:57.42416491192019
step:185 
 cost:57.23470166815713
step:186 
 cost:57.046392212690435
step:187 
 cost:56.85922236533657
step:188 
 cost:56.67317836305823
step:189 
 cost:56.48824684342327
step:190 
 cost:56.30441482875111
step:191 
 cost:56.1216697109177
step:192 
 cost:55.93999923679173
step:193 
 cost:55.7593914942755
step:194 
 cost:55.57983489892525
step:195 
 cost:55.40131818112675
step:196 
 cost:55.22383037380293
step:197 
 cost:55.0473608006313
step:198 
 cost:54.87189906474973
step:199 
 cost:54.6974350379305
step:200 
 cost:54.52395885020272
step:201 
 cost:54.35146087990451
step:202 
 cost:54.179931744147
step:203 
 cost:54.00936228967297
step:204 
 cost:53.83974358409353
step:205 
 cost:53.67106690748707
step:206 
 cost:53.50332374434552
step:207 
 cost:53.33650577585308
step:208 
 cost:53.17060487248387
step:209 
 cost:53.005613086904994
step:210 
 cost:52.8415226471722
step:211 
 cost:52.678325950206144
step:212 
 cost:52.51601555553732
step:213 
 cost:52.354584179308524
step:214 
 cost:52.194024688524095
step:215 
 cost:52.034330095535665
step:216 
 cost:51.875493552754435
step:217 
 cost:51.71750834758065
step:218 
 cost:51.56036789754114
step:219 
 cost:51.40406574562618
step:220 
 cost:51.24859555581746
step:221 
 cost:51.093951108799175
step:222 
 cost:50.94012629784456
step:223 
 cost:50.78711512487044
step:224 
 cost:50.634911696653106
step:225 
 cost:50.48351022119832
step:226 
 cost:50.33290500425955
step:227 
 cost:50.18309044599777
step:228 
 cost:50.03406103777725
step:229 
 cost:49.88581135909152
step:230 
 cost:49.738336074614054
step:231 
 cost:49.5916299313687
step:232 
 cost:49.44568775601446
step:233 
 cost:49.30050445224027
step:234 
 cost:49.156074998264984
step:235 
 cost:49.01239444443818
step:236 
 cost:48.86945791093761
step:237 
 cost:48.727260585559385
step:238 
 cost:48.58579772159676
step:239 
 cost:48.4450646358042
step:240 
 cost:48.30505670644283
step:241 
 cost:48.16576937140407
step:242 
 cost:48.027198126408216
step:243 
 cost:47.88933852327478
step:244 
 cost:47.75218616826153
step:245 
 cost:47.61573672046964
step:246 
 cost:47.47998589031185
step:247 
 cost:47.34492943804133
step:248 
 cost:47.21056317233855
step:249 
 cost:47.07688294895374
step:250 
 cost:46.94388466940279
step:251 
 cost:46.811564279714155
step:252 
 cost:46.67991776922484
step:253 
 cost:46.548941169423294
step:254 
 cost:46.41863055283735
step:255 
 cost:46.28898203196532
step:256 
 cost:46.159991758248445
step:257 
 cost:46.031655921082915
step:258 
 cost:45.90397074687011
step:259 
 cost:45.77693249810301
step:260 
 cost:45.650537472487706
step:261 
 cost:45.524782002098384
step:262 
 cost:45.399662452564286
step:263 
 cost:45.275175222287615
step:264 
 cost:45.15131674169078
step:265 
 cost:45.02808347249206
step:266 
 cost:44.90547190700829
step:267 
 cost:44.78347856748357
step:268 
 cost:44.66210000544294
step:269 
 cost:44.54133280106991
step:270 
 cost:44.42117356260697
step:271 
 cost:44.301618925777916
step:272 
 cost:44.18266555323149
step:273 
 cost:44.06431013400503
step:274 
 cost:43.94654938300753
step:275 
 cost:43.82938004052142
step:276 
 cost:43.712798871721944
step:277 
 cost:43.5968026662138
step:278 
 cost:43.48138823758409
step:279 
 cost:43.366552422971054
step:280 
 cost:43.252292082647784
step:281 
 cost:43.13860409962048
step:282 
 cost:43.02548537924055
step:283 
 cost:42.91293284883003
step:284 
 cost:42.80094345731975
step:285 
 cost:42.689514174899756
step:286 
 cost:42.57864199268149
step:287 
 cost:42.468323922371226
step:288 
 cost:42.35855699595434
step:289 
 cost:42.249338265389895
step:290 
 cost:42.14066480231534
step:291 
 cost:42.03253369776057
step:292 
 cost:41.92494206187127
step:293 
 cost:41.817887023641056
step:294 
 cost:41.71136573065204
step:295 
 cost:41.6053753488235
step:296 
 cost:41.49991306216834
step:297 
 cost:41.39497607255705
step:298 
 cost:41.29056159948878
step:299 
 cost:41.18666687986939
step:300 
 cost:41.083289167795975
step:301 
 cost:40.98042573434789
step:302 
 cost:40.87807386738379
step:303 
 cost:40.77623087134456
step:304 
 cost:40.67489406706182
step:305 
 cost:40.574060791571874
step:306 
 cost:40.4737283979349
step:307 
 cost:40.37389425505899
step:308 
 cost:40.274555747529114
step:309 
 cost:40.17571027544066
step:310 
 cost:40.0773552542373
step:311 
 cost:39.979488114553256
step:312 
 cost:39.88210630205959
step:313 
 cost:39.78520727731439
step:314 
 cost:39.68878851561676
step:315 
 cost:39.592847506864466
step:316 
 cost:39.497381755415084
step:317 
 cost:39.40238877995044
step:318 
 cost:39.30786611334439
step:319 
 cost:39.213811302533585
step:320 
 cost:39.12022190839134
step:321 
 cost:39.02709550560432
step:322 
 cost:38.934429682552
step:323 
 cost:38.842222041188876
step:324 
 cost:38.750470196929086
step:325 
 cost:38.659171778533675
step:326 
 cost:38.56832442800014
step:327 
 cost:38.47792580045429
step:328 
 cost:38.38797356404429
step:329 
 cost:38.29846539983697
step:330 
 cost:38.209399001715994
step:331 
 cost:38.12077207628214
step:332 
 cost:38.032582342755425
step:333 
 cost:37.944827532879124
step:334 
 cost:37.85750539082555
step:335 
 cost:37.77061367310347
step:336 
 cost:37.684150148467296
step:337 
 cost:37.59811259782777
step:338 
 cost:37.51249881416427
step:339 
 cost:37.4273066024385
step:340 
 cost:37.34253377950974
step:341 
 cost:37.25817817405139
step:342 
 cost:37.174237626468866
step:343 
 cost:37.09070998881886
step:344 
 cost:37.007593124729745
step:345 
 cost:36.92488490932327
step:346 
 cost:36.84258322913742
step:347 
 cost:36.760685982050354
step:348 
 cost:36.679191077205516
step:349 
 cost:36.59809643493774
step:350 
 cost:36.5173999867004
step:351 
 cost:36.43709967499362
step:352 
 cost:36.35719345329332
step:353 
 cost:36.27767928598136
step:354 
 cost:36.198555148276405
step:355 
 cost:36.11981902616584
step:356 
 cost:36.04146891633843
step:357 
 cost:35.963502826117846
step:358 
 cost:35.88591877339699
step:359 
 cost:35.80871478657306
step:360 
 cost:35.7318889044835
step:361 
 cost:35.65543917634247
step:362 
 cost:35.579363661678286
step:363 
 cost:35.5036604302713
step:364 
 cost:35.4283275620927
step:365 
 cost:35.35336314724372
step:366 
 cost:35.27876528589575
step:367 
 cost:35.204532088230835
step:368 
 cost:35.13066167438293
step:369 
 cost:35.057152174379695
step:370 
 cost:34.98400172808486
step:371 
 cost:34.91120848514119
step:372 
 cost:34.83877060491388
step:373 
 cost:34.76668625643473
step:374 
 cost:34.69495361834655
step:375 
 cost:34.62357087884826
step:376 
 cost:34.55253623564044
step:377 
 cost:34.48184789587136
step:378 
 cost:34.41150407608348
step:379 
 cost:34.34150300216045
step:380 
 cost:34.27184290927448
step:381 
 cost:34.20252204183428
step:382 
 cost:34.133538653433305
step:383 
 cost:34.064891006798526
step:384 
 cost:33.99657737373955
step:385 
 cost:33.92859603509821
step:386 
 cost:33.86094528069847
step:387 
 cost:33.793623409296835
step:388 
 cost:33.72662872853303
step:389 
 cost:33.65995955488113
step:390 
 cost:33.59361421360106
step:391 
 cost:33.5275910386904
step:392 
 cost:33.46188837283664
step:393 
 cost:33.39650456736967
step:394 
 cost:33.331437982214716
step:395 
 cost:33.266686985845574
step:396 
 cost:33.202249955238166
step:397 
 cost:33.13812527582442
step:398 
 cost:33.07431134144656
step:399 
 cost:33.01080655431152
step:400 
 cost:32.94760932494593
step:401 
 cost:32.88471807215114
step:402 
 cost:32.822131222958745
step:403 
 cost:32.759847212586365
step:404 
 cost:32.69786448439365
step:405 
 cost:32.636181489838584
step:406 
 cost:32.57479668843421
step:407 
 cost:32.51370854770543
step:408 
 cost:32.45291554314627
step:409 
 cost:32.39241615817728
step:410 
 cost:32.33220888410328
step:411 
 cost:32.27229222007138
step:412 
 cost:32.212664673029195
step:413 
 cost:32.15332475768338
step:414 
 cost:32.09427099645843
step:415 
 cost:32.03550191945567
step:416 
 cost:31.97701606441254
step:417 
 cost:31.918811976662166
step:418 
 cost:31.860888209093094
step:419 
 cost:31.803243322109306
step:420 
 cost:31.745875883590497
step:421 
 cost:31.688784468852557
step:422 
 cost:31.631967660608293
step:423 
 cost:31.5754240489284
step:424 
 cost:31.519152231202668
step:425 
 cost:31.463150812101347
step:426 
 cost:31.40741840353685
step:427 
 cost:31.351953624625597
step:428 
 cost:31.29675510165007
step:429 
 cost:31.241821468021193
step:430 
 cost:31.187151364240773
step:431 
 cost:31.132743437864296
step:432 
 cost:31.078596343463843
step:433 
 cost:31.024708742591297
step:434 
 cost:30.971079303741647
step:435 
 cost:30.91770670231663
step:436 
 cost:30.864589620588458
step:437 
 cost:30.811726747663872
step:438 
 cost:30.759116779448252
step:439 
 cost:30.706758418610075
step:440 
 cost:30.65465037454546
step:441 
 cost:30.60279136334296
step:442 
 cost:30.551180107748568
step:443 
 cost:30.499815337130844
step:444 
 cost:30.448695787446344
step:445 
 cost:30.3978202012051
step:446 
 cost:30.347187327436465
step:447 
 cost:30.296795921654933
step:448 
 cost:30.246644745826345
step:449 
 cost:30.19673256833418
step:450 
 cost:30.147058163946028
step:451 
 cost:30.097620313780254
step:452 
 cost:30.048417805272898
step:453 
 cost:29.999449432144644
step:454 
 cost:29.9507139943681
step:455 
 cost:29.90221029813515
step:456 
 cost:29.85393715582451
step:457 
 cost:29.805893385969522
step:458 
 cost:29.75807781322599
step:459 
 cost:29.710489268340368
step:460 
 cost:29.663126588117912
step:461 
 cost:29.6159886153912
step:462 
 cost:29.569074198988677
step:463 
 cost:29.52238219370344
step:464 
 cost:29.475911460262186
step:465 
 cost:29.429660865294284
step:466 
 cost:29.383629281301072
step:467 
 cost:29.33781558662525
step:468 
 cost:29.292218665420506
step:469 
 cost:29.246837407621264
step:470 
 cost:29.201670708912566
step:471 
 cost:29.1567174707002
step:472 
 cost:29.111976600080883
step:473 
 cost:29.067447009812696
step:474 
 cost:29.023127618285603
step:475 
 cost:28.979017349492153
step:476 
 cost:28.935115132998366
step:477 
 cost:28.891419903914723
step:478 
 cost:28.84793060286736
step:479 
 cost:28.804646175969342
step:480 
 cost:28.76156557479216
step:481 
 cost:28.71868775633737
step:482 
 cost:28.676011683008348
step:483 
 cost:28.633536322582177
step:484 
 cost:28.591260648181773
step:485 
 cost:28.549183638248053
step:486 
 cost:28.50730427651232
step:487 
 cost:28.46562155196875
step:488 
 cost:28.424134458847064
step:489 
 cost:28.3828419965853
step:490 
 cost:28.341743169802776
step:491 
 cost:28.300836988273133
step:492 
 cost:28.260122466897595
step:493 
 cost:28.219598625678287
step:494 
 cost:28.179264489691775
step:495 
 cost:28.139119089062685
step:496 
 cost:28.09916145893747
step:497 
 cost:28.059390639458353
step:498 
 cost:28.01980567573734
step:499 
 cost:27.98040561783047
step:500 
 cost:27.941189520712044
step:501 
 cost:27.902156444249158
step:502 
 cost:27.863305453176277
step:503 
 cost:27.824635617069934
step:504 
 cost:27.786146010323595
step:505 
 cost:27.747835712122665
step:506 
 cost:27.70970380641957
step:507 
 cost:27.671749381909038
step:508 
 cost:27.633971532003443
step:509 
 cost:27.596369354808346
step:510 
 cost:27.558941953098095
step:511 
 cost:27.521688434291587
step:512 
 cost:27.484607910428196
step:513 
 cost:27.44769949814371
step:514 
 cost:27.410962318646547
step:515 
 cost:27.374395497693957
step:516 
 cost:27.337998165568443
step:517 
 cost:27.301769457054256
step:518 
 cost:27.265708511414008
step:519 
 cost:27.22981447236547
step:520 
 cost:27.19408648805839
step:521 
 cost:27.15852371105154
step:522 
 cost:27.123125298289793
step:523 
 cost:27.08789041108137
step:524 
 cost:27.052818215075185
step:525 
 cost:27.017907880238333
step:526 
 cost:26.983158580833646
step:527 
 cost:26.948569495397425
step:528 
 cost:26.914139806717248
step:529 
 cost:26.879868701809905
step:530 
 cost:26.84575537189944
step:531 
 cost:26.811799012395355
step:532 
 cost:26.77799882287081
step:533 
 cost:26.7443540070411
step:534 
 cost:26.710863772742098
step:535 
 cost:26.677527331908912
step:536 
 cost:26.644343900554563
step:537 
 cost:26.611312698748872
step:538 
 cost:26.578432950597364
step:539 
 cost:26.54570388422038
step:540 
 cost:26.51312473173217
step:541 
 cost:26.480694729220218
step:542 
 cost:26.448413116724627
step:543 
 cost:26.41627913821757
step:544 
 cost:26.38429204158291
step:545 
 cost:26.352451078595912
step:546 
 cost:26.32075550490302
step:547 
 cost:26.28920458000178
step:548 
 cost:26.257797567220894
step:549 
 cost:26.226533733700272
step:550 
 cost:26.195412350371313
step:551 
 cost:26.164432691937193
step:552 
 cost:26.133594036853335
step:553 
 cost:26.10289566730789
step:554 
 cost:26.07233686920241
step:555 
 cost:26.041916932132548
step:556 
 cost:26.01163514936892
step:557 
 cost:25.98149081783802
step:558 
 cost:25.951483238103247
step:559 
 cost:25.921611714346056
step:560 
 cost:25.89187555434715
step:561 
 cost:25.86227406946784
step:562 
 cost:25.832806574631448
step:563 
 cost:25.803472388304836
step:564 
 cost:25.774270832480006
step:565 
 cost:25.74520123265583
step:566 
 cost:25.71626291781984
step:567 
 cost:25.687455220430124
step:568 
 cost:25.65877747639734
step:569 
 cost:25.63022902506679
step:570 
 cost:25.601809209200585
step:571 
 cost:25.573517374959966
step:572 
 cost:25.5453528718876
step:573 
 cost:25.51731505289011
step:574 
 cost:25.489403274220546
step:575 
 cost:25.4616168954611
step:576 
 cost:25.43395527950577
step:577 
 cost:25.406417792543227
step:578 
 cost:25.379003804039684
step:579 
 cost:25.35171268672193
step:580 
 cost:25.32454381656036
step:581 
 cost:25.297496572752227
step:582 
 cost:25.270570337704807
step:583 
 cost:25.243764497018823
step:584 
 cost:25.217078439471837
step:585 
 cost:25.190511557001805
step:586 
 cost:25.164063244690624
step:587 
 cost:25.137732900747864
step:588 
 cost:25.11151992649455
step:589 
 cost:25.08542372634699
step:590 
 cost:25.059443707800742
step:591 
 cost:25.033579281414617
step:592 
 cost:25.007829860794804
step:593 
 cost:24.98219486257907
step:594 
 cost:24.956673706421014
step:595 
 cost:24.93126581497443
step:596 
 cost:24.905970613877734
step:597 
 cost:24.88078753173851
step:598 
 cost:24.85571600011806
step:599 
 cost:24.830755453516133
step:600 
 cost:24.80590532935565
step:601 
 cost:24.78116506796755
step:602 
 cost:24.7565341125757
step:603 
 cost:24.732011909281894
step:604 
 cost:24.70759790705092
step:605 
 cost:24.683291557695703
step:606 
 cost:24.659092315862562
step:607 
 cost:24.634999639016456
step:608 
 cost:24.61101298742642
step:609 
 cost:24.587131824150987
step:610 
 cost:24.563355615023713
step:611 
 cost:24.53968382863882
step:612 
 cost:24.516115936336842
step:613 
 cost:24.492651412190376
step:614 
 cost:24.46928973298994
step:615 
 cost:24.446030378229842
step:616 
 cost:24.42287283009419
step:617 
 cost:24.39981657344291
step:618 
 cost:24.37686109579787
step:619 
 cost:24.354005887329095
step:620 
 cost:24.33125044084101
step:621 
 cost:24.30859425175878
step:622 
 cost:24.28603681811471
step:623 
 cost:24.263577640534745
step:624 
 cost:24.241216222224995
step:625 
 cost:24.21895206895836
step:626 
 cost:24.19678468906119
step:627 
 cost:24.174713593400114
step:628 
 cost:24.152738295368774
step:629 
 cost:24.130858310874785
step:630 
 cost:24.109073158326648
step:631 
 cost:24.08738235862082
step:632 
 cost:24.06578543512878
step:633 
 cost:24.04428191368421
step:634 
 cost:24.02287132257019
step:635 
 cost:24.001553192506556
step:636 
 cost:23.98032705663721
step:637 
 cost:23.95919245051756
step:638 
 cost:23.938148912102015
step:639 
 cost:23.917195981731542
step:640 
 cost:23.896333202121305
step:641 
 cost:23.87556011834831
step:642 
 cost:23.85487627783919
step:643 
 cost:23.834281230358027
step:644 
 cost:23.813774527994173
step:645 
 cost:23.79335572515026
step:646 
 cost:23.773024378530167
step:647 
 cost:23.752780047127064
step:648 
 cost:23.73262229221159
step:649 
 cost:23.71255067732001
step:650 
 cost:23.692564768242455
step:651 
 cost:23.672664133011253
step:652 
 cost:23.6528483418893
step:653 
 cost:23.63311696735849
step:654 
 cost:23.61346958410819
step:655 
 cost:23.593905769023806
step:656 
 cost:23.574425101175397
step:657 
 cost:23.55502716180635
step:658 
 cost:23.53571153432208
step:659 
 cost:23.516477804278857
step:660 
 cost:23.49732555937261
step:661 
 cost:23.478254389427864
step:662 
 cost:23.459263886386697
step:663 
 cost:23.440353644297737
step:664 
 cost:23.421523259305253
step:665 
 cost:23.402772329638285
step:666 
 cost:23.384100455599853
step:667 
 cost:23.365507239556152
step:668 
 cost:23.346992285925893
step:669 
 cost:23.328555201169653
step:670 
 cost:23.310195593779277
step:671 
 cost:23.29191307426735
step:672 
 cost:23.273707255156715
step:673 
 cost:23.25557775097004
step:674 
 cost:23.237524178219484
step:675 
 cost:23.219546155396326
step:676 
 cost:23.201643302960747
step:677 
 cost:23.183815243331587
step:678 
 cost:23.16606160087622
step:679 
 cost:23.148382001900423
step:680 
 cost:23.130776074638323
step:681 
 cost:23.113243449242447
step:682 
 cost:23.09578375777369
step:683 
 cost:23.078396634191495
step:684 
 cost:23.06108171434397
step:685 
 cost:23.04383863595811
step:686 
 cost:23.02666703863003
step:687 
 cost:23.009566563815312
step:688 
 cost:22.992536854819313
step:689 
 cost:22.975577556787634
step:690 
 cost:22.95868831669653
step:691 
 cost:22.941868783343423
step:692 
 cost:22.925118607337478
step:693 
 cost:22.908437441090214
step:694 
 cost:22.891824938806117
step:695 
 cost:22.875280756473387
step:696 
 cost:22.85880455185467
step:697 
 cost:22.842395984477864
step:698 
 cost:22.826054715626956
step:699 
 cost:22.809780408332912
step:700 
 cost:22.79357272736465
step:701 
 cost:22.777431339219994
step:702 
 cost:22.76135591211673
step:703 
 cost:22.745346115983683
step:704 
 cost:22.729401622451842
step:705 
 cost:22.71352210484553
step:706 
 cost:22.69770723817365
step:707 
 cost:22.681956699120924
step:708 
 cost:22.66627016603919
step:709 
 cost:22.65064731893882
step:710 
 cost:22.635087839480057
step:711 
 cost:22.61959141096449
step:712 
 cost:22.604157718326537
step:713 
 cost:22.58878644812498
step:714 
 cost:22.57347728853458
step:715 
 cost:22.55822992933761
step:716 
 cost:22.54304406191562
step:717 
 cost:22.527919379241073
step:718 
 cost:22.512855575869143
step:719 
 cost:22.497852347929484
step:720 
 cost:22.482909393118064
step:721 
 cost:22.468026410689088
step:722 
 cost:22.453203101446846
step:723 
 cost:22.438439167737748
step:724 
 cost:22.423734313442285
step:725 
 cost:22.409088243967094
step:726 
 cost:22.394500666237054
step:727 
 cost:22.379971288687376
step:728 
 cost:22.365499821255828
step:729 
 cost:22.351085975374897
step:730 
 cost:22.336729463964073
step:731 
 cost:22.322430001422134
step:732 
 cost:22.30818730361945
step:733 
 cost:22.294001087890415
step:734 
 cost:22.279871073025777
step:735 
 cost:22.265796979265158
step:736 
 cost:22.25177852828949
step:737 
 cost:22.237815443213606
step:738 
 cost:22.22390744857874
step:739 
 cost:22.210054270345168
step:740 
 cost:22.196255635884853
step:741 
 cost:22.182511273974125
step:742 
 cost:22.16882091478638
step:743 
 cost:22.155184289884875
step:744 
 cost:22.141601132215495
step:745 
 cost:22.128071176099592
step:746 
 cost:22.114594157226858
step:747 
 cost:22.101169812648234
step:748 
 cost:22.087797880768857
step:749 
 cost:22.074478101341036
step:750 
 cost:22.06121021545726
step:751 
 cost:22.047993965543263
step:752 
 cost:22.034829095351117
step:753 
 cost:22.02171534995235
step:754 
 cost:22.008652475731093
step:755 
 cost:21.995640220377314
step:756 
 cost:21.98267833288001
step:757 
 cost:21.9697665635205
step:758 
 cost:21.956904663865707
step:759 
 cost:21.94409238676151
step:760 
 cost:21.931329486326117
step:761 
 cost:21.91861571794346
step:762 
 cost:21.905950838256633
step:763 
 cost:21.893334605161375
step:764 
 cost:21.880766777799572
step:765 
 cost:21.868247116552798
step:766 
 cost:21.855775383035905
step:767 
 cost:21.843351340090614
step:768 
 cost:21.83097475177915
step:769 
 cost:21.818645383377923
step:770 
 cost:21.806363001371267
step:771 
 cost:21.79412737344513
step:772 
 cost:21.781938268480868
step:773 
 cost:21.76979545654907
step:774 
 cost:21.757698708903355
step:775 
 cost:21.745647797974268
step:776 
 cost:21.733642497363178
step:777 
 cost:21.72168258183621
step:778 
 cost:21.70976782731819
step:779 
 cost:21.697898010886668
step:780 
 cost:21.68607291076592
step:781 
 cost:21.67429230632104
step:782 
 cost:21.662555978051973
step:783 
 cost:21.650863707587693
step:784 
 cost:21.63921527768032
step:785 
 cost:21.627610472199287
step:786 
 cost:21.616049076125595
step:787 
 cost:21.60453087554601
step:788 
 cost:21.59305565764734
step:789 
 cost:21.581623210710767
step:790 
 cost:21.570233324106134
step:791 
 cost:21.55888578828634
step:792 
 cost:21.547580394781683
step:793 
 cost:21.536316936194336
step:794 
 cost:21.52509520619274
step:795 
 cost:21.51391499950611
step:796 
 cost:21.502776111918916
step:797 
 cost:21.491678340265455
step:798 
 cost:21.48062148242435
step:799 
 cost:21.469605337313194
step:800 
 cost:21.45862970488314
step:801 
 cost:21.44769438611356
step:802 
 cost:21.436799183006695
step:803 
 cost:21.425943898582375
step:804 
 cost:21.415128336872737
step:805 
 cost:21.40435230291699
step:806 
 cost:21.393615602756196
step:807 
 cost:21.38291804342804
step:808 
 cost:21.372259432961755
step:809 
 cost:21.36163958037289
step:810 
 cost:21.35105829565824
step:811 
 cost:21.340515389790788
step:812 
 cost:21.330010674714593
step:813 
 cost:21.319543963339807
step:814 
 cost:21.309115069537647
step:815 
 cost:21.298723808135406
step:816 
 cost:21.288369994911534
step:817 
 cost:21.27805344659068
step:818 
 cost:21.267773980838776
step:819 
 cost:21.257531416258235
step:820 
 cost:21.247325572383005
step:821 
 cost:21.237156269673804
step:822 
 cost:21.22702332951329
step:823 
 cost:21.216926574201324
step:824 
 cost:21.206865826950164
step:825 
 cost:21.196840911879775
step:826 
 cost:21.186851654013115
step:827 
 cost:21.17689787927147
step:828 
 cost:21.16697941446977
step:829 
 cost:21.157096087312
step:830 
 cost:21.14724772638657
step:831 
 cost:21.137434161161732
step:832 
 cost:21.12765522198103
step:833 
 cost:21.11791074005878
step:834 
 cost:21.10820054747552
step:835 
 cost:21.09852447717356
step:836 
 cost:21.088882362952507
step:837 
 cost:21.079274039464824
step:838 
 cost:21.06969934221141
step:839 
 cost:21.0601581075372
step:840 
 cost:21.050650172626817
step:841 
 cost:21.041175375500185
step:842 
 cost:21.031733555008234
step:843 
 cost:21.022324550828596
step:844 
 cost:21.012948203461303
step:845 
 cost:21.003604354224525
step:846 
 cost:20.994292845250367
step:847 
 cost:20.985013519480614
step:848 
 cost:20.975766220662564
step:849 
 cost:20.966550793344854
step:850 
 cost:20.957367082873283
step:851 
 cost:20.948214935386723
step:852 
 cost:20.93909419781298
step:853 
 cost:20.930004717864723
step:854 
 cost:20.920946344035425
step:855 
 cost:20.911918925595298
step:856 
 cost:20.90292231258729
step:857 
 cost:20.89395635582308
step:858 
 cost:20.885020906879078
step:859 
 cost:20.87611581809251
step:860 
 cost:20.86724094255742
step:861 
 cost:20.85839613412079
step:862 
 cost:20.84958124737864
step:863 
 cost:20.840796137672125
step:864 
 cost:20.832040661083692
step:865 
 cost:20.823314674433252
step:866 
 cost:20.814618035274346
step:867 
 cost:20.805950601890334
step:868 
 cost:20.79731223329066
step:869 
 cost:20.788702789207044
step:870 
 cost:20.780122130089772
step:871 
 cost:20.771570117103952
step:872 
 cost:20.763046612125848
step:873 
 cost:20.754551477739152
step:874 
 cost:20.746084577231372
step:875 
 cost:20.737645774590135
step:876 
 cost:20.729234934499605
step:877 
 cost:20.720851922336863
step:878 
 cost:20.712496604168297
step:879 
 cost:20.70416884674607
step:880 
 cost:20.695868517504554
step:881 
 cost:20.687595484556777
step:882 
 cost:20.67934961669095
step:883 
 cost:20.67113078336693
step:884 
 cost:20.66293885471278
step:885 
 cost:20.654773701521293
step:886 
 cost:20.646635195246525
step:887 
 cost:20.63852320800043
step:888 
 cost:20.630437612549393
step:889 
 cost:20.622378282310894
step:890 
 cost:20.614345091350096
step:891 
 cost:20.606337914376518
step:892 
 cost:20.59835662674069
step:893 
 cost:20.590401104430825
step:894 
 cost:20.582471224069547
step:895 
 cost:20.574566862910583
step:896 
 cost:20.566687898835493
step:897 
 cost:20.558834210350437
step:898 
 cost:20.551005676582932
step:899 
 cost:20.543202177278644
step:900 
 cost:20.53542359279817
step:901 
 cost:20.52766980411388
step:902 
 cost:20.519940692806728
step:903 
 cost:20.512236141063116
step:904 
 cost:20.50455603167175
step:905 
 cost:20.496900248020545
step:906 
 cost:20.489268674093495
step:907 
 cost:20.481661194467595
step:908 
 cost:20.474077694309784
step:909 
 cost:20.466518059373897
step:910 
 cost:20.45898217599759
step:911 
 cost:20.451469931099368
step:912 
 cost:20.443981212175533
step:913 
 cost:20.436515907297235
step:914 
 cost:20.42907390510746
step:915 
 cost:20.421655094818114
step:916 
 cost:20.41425936620702
step:917 
 cost:20.406886609615047
step:918 
 cost:20.39953671594316
step:919 
 cost:20.39220957664955
step:920 
 cost:20.384905083746705
step:921 
 cost:20.377623129798593
step:922 
 cost:20.37036360791778
step:923 
 cost:20.3631264117626
step:924 
 cost:20.355911435534324
step:925 
 cost:20.348718573974352
step:926 
 cost:20.34154772236143
step:927 
 cost:20.334398776508852
step:928 
 cost:20.327271632761697
step:929 
 cost:20.320166187994108
step:930 
 cost:20.31308233960651
step:931 
 cost:20.306019985522905
step:932 
 cost:20.298979024188174
step:933 
 cost:20.291959354565357
step:934 
 cost:20.284960876133024
step:935 
 cost:20.277983488882526
step:936 
 cost:20.27102709331542
step:937 
 cost:20.264091590440792
step:938 
 cost:20.257176881772626
step:939 
 cost:20.250282869327208
step:940 
 cost:20.243409455620533
step:941 
 cost:20.236556543665685
step:942 
 cost:20.22972403697031
step:943 
 cost:20.222911839534035
step:944 
 cost:20.216119855845914
step:945 
 cost:20.209347990881923
step:946 
 cost:20.202596150102412
step:947 
 cost:20.195864239449616
step:948 
 cost:20.189152165345174
step:949 
 cost:20.18245983468761
step:950 
 cost:20.175787154849903
step:951 
 cost:20.16913403367703
step:952 
 cost:20.162500379483497
step:953 
 cost:20.155886101050946
step:954 
 cost:20.149291107625714
step:955 
 cost:20.14271530891644
step:956 
 cost:20.136158615091663
step:957 
 cost:20.129620936777467
step:958 
 cost:20.123102185055085
step:959 
 cost:20.116602271458568
step:960 
 cost:20.110121107972436
step:961 
 cost:20.10365860702933
step:962 
 cost:20.09721468150774
step:963 
 cost:20.09078924472965
step:964 
 cost:20.084382210458273
step:965 
 cost:20.07799349289576
step:966 
 cost:20.07162300668093
step:967 
 cost:20.065270666887013
step:968 
 cost:20.058936389019415
step:969 
 cost:20.052620089013466
step:970 
 cost:20.046321683232193
step:971 
 cost:20.040041088464136
step:972 
 cost:20.03377822192112
step:973 
 cost:20.027533001236087
step:974 
 cost:20.0213053444609
step:975 
 cost:20.015095170064185
step:976 
 cost:20.008902396929187
step:977 
 cost:20.002726944351608
step:978 
 cost:19.99656873203749
step:979 
 cost:19.990427680101078
step:980 
 cost:19.984303709062722
step:981 
 cost:19.978196739846776
step:982 
 cost:19.97210669377951
step:983 
 cost:19.966033492587012
step:984 
 cost:19.959977058393157
step:985 
 cost:19.95393731371753
step:986 
 cost:19.947914181473376
step:987 
 cost:19.941907584965566
step:988 
 cost:19.935917447888592
step:989 
 cost:19.929943694324535
step:990 
 cost:19.92398624874106
step:991 
 cost:19.918045035989422
step:992 
 cost:19.912119981302517
step:993 
 cost:19.90621101029285
step:994 
 cost:19.900318048950624
step:995 
 cost:19.89444102364176
step:996 
 cost:19.888579861105978
step:997 
 cost:19.882734488454833
step:998 
 cost:19.876904833169824
step:999 
 cost:19.87109082310046
step:1000 
 cost:19.865292386462382

In [5]:
print(model.weights)


[ -3.80350608  -3.32355721  -0.87030164  -3.01705249   9.35670654
  11.9851357   17.34278688]

Visualizing the Cost per Step

Plotting a cost curve explains to us what is happening in our gradient descent. Whether our model converges or not. It also helps to understand the point after which we need not expend resources to train.


In [6]:
model.plotCostCurve()


Predicting Values

Here we are using our input dataset to predict the Y with our final model. In actual scenarios there is proper process to do this.


In [7]:
model.predict(inputx)


Out[7]:
array([[ 11.69963191],
       [ 10.72465422],
       [ 11.01178735],
       [ 11.69153246],
       [ 10.90690058],
       [  8.50038542],
       [  7.61356031],
       [  7.51489593],
       [  8.07753509],
       [  8.45774581],
       [  9.69338448],
       [  8.95672484],
       [  9.19414064],
       [  9.22293721],
       [ 19.21322733],
       [ 16.84597124],
       [ 16.87839298],
       [ 17.36499999],
       [ 19.31228197],
       [ 23.10496642],
       [ 20.41257277],
       [ 18.96031731],
       [ 20.68032016],
       [ 17.78506548],
       [ 16.7408113 ],
       [ 11.0059526 ],
       [ 12.29345653],
       [ 11.31113677],
       [ 13.99711558],
       [ 20.31104327],
       [ 20.3746204 ],
       [ 19.77822174],
       [ 16.30695169],
       [ 17.04717532],
       [ 16.95022051],
       [ 17.03007554],
       [ 17.13987662],
       [ 11.56049424],
       [ 10.58719058],
       [ 12.49113315],
       [ 12.55986768],
       [ 10.28952784],
       [ 10.64808615],
       [ 10.28740272],
       [ 16.03426154],
       [ 22.28589255],
       [ 16.71195165],
       [ 16.61256155],
       [ 19.75034214],
       [ 19.86592592],
       [ 23.38340292],
       [ 20.50069615],
       [ 23.45476328],
       [ 23.00717543],
       [ 23.20294432],
       [ 23.93908822],
       [ 21.56963247],
       [ 22.73913849],
       [ 26.37707095],
       [ 23.47798907],
       [ 22.136338  ],
       [ 12.50365351],
       [ 11.93200316],
       [ 13.80374117],
       [ 13.23280645],
       [ 13.20613722],
       [ 10.75777436],
       [ 13.19133787],
       [ 13.20703751],
       [ 12.10787767],
       [ 21.53178275],
       [ 13.5748925 ],
       [ 14.30293101],
       [ 15.24480411],
       [ 14.13182871],
       [ 20.3032758 ],
       [ 22.78385165],
       [ 23.17549625],
       [ 23.307105  ],
       [ 21.71329927],
       [ 22.54809629],
       [ 20.74807496],
       [ 21.58844504],
       [ 22.4493607 ],
       [ 14.16090503],
       [ 14.20489853],
       [ 14.39860863],
       [ 15.63789974],
       [ 14.55179462],
       [ 11.80943035],
       [ 12.98143411],
       [ 14.0077509 ],
       [ 15.27219686],
       [ 11.54170589],
       [ 11.18081697],
       [ 13.19979244],
       [ 19.87366706],
       [ 20.38373639],
       [ 19.70928036],
       [ 19.82491689],
       [ 20.05999403],
       [ 26.28135091],
       [ 13.63939098],
       [ 12.80140531],
       [ 13.62477399],
       [ 13.5174711 ],
       [ 19.28577845],
       [ 24.68736957],
       [ 24.56787649],
       [ 23.08661349],
       [ 22.73986907],
       [ 24.18186789],
       [ 19.62816547],
       [ 22.73198373],
       [ 14.31819952],
       [ 11.36978244],
       [ 25.7517926 ],
       [ 22.7398777 ],
       [ 21.48325866],
       [ 21.91458597],
       [ 14.03972166],
       [ 21.26655208],
       [ 18.98359117],
       [ 13.3963233 ],
       [ 21.16785636],
       [ 20.74567998],
       [ 20.77593675],
       [ 26.22147473],
       [ 23.9697714 ],
       [ 27.51104962],
       [ 24.03946739],
       [ 20.39527659],
       [ 20.96367738],
       [ 20.45156366],
       [ 16.25931175],
       [ 15.60093984],
       [ 15.52581981],
       [ 16.9480636 ],
       [ 16.93102871],
       [ 24.3601503 ],
       [ 24.26104046],
       [ 23.20920547],
       [ 25.18330044],
       [ 26.17016507],
       [ 23.433209  ],
       [ 24.00469789],
       [ 22.82794217],
       [ 23.03861306],
       [ 23.52289289],
       [ 24.50786348],
       [ 21.51769077],
       [ 21.08888556],
       [ 24.05280259],
       [ 23.45176636],
       [ 14.43138043],
       [ 16.56643   ],
       [ 17.04645588],
       [ 16.0795536 ],
       [ 23.6299158 ],
       [ 22.10658036],
       [ 22.43555473],
       [ 22.74285945],
       [ 21.03073605],
       [ 18.25199957],
       [ 17.02767275],
       [ 25.16792538],
       [ 24.91741414],
       [ 21.73332088],
       [ 25.81668842],
       [ 22.90424838],
       [ 25.48095277],
       [ 25.11195271],
       [ 21.37607942],
       [ 24.33796463],
       [ 22.08350812],
       [ 23.91441389],
       [ 24.79350239],
       [ 23.35551333],
       [ 22.95254221],
       [ 26.48056787],
       [ 25.49966743],
       [ 26.43447197],
       [ 24.7613309 ],
       [ 27.01413372],
       [ 25.6781148 ],
       [ 17.61082275],
       [ 17.47326511],
       [ 18.43168116],
       [ 17.04762644],
       [ 22.18515239],
       [ 21.34290074],
       [ 23.90405052],
       [ 23.52421995],
       [ 29.94793728],
       [ 29.63241068],
       [ 25.4481153 ],
       [ 27.4236345 ],
       [ 23.10856615],
       [ 24.90171541],
       [ 22.01627934],
       [ 23.29628679],
       [ 24.36518234],
       [ 27.00516935],
       [ 26.40315207],
       [ 24.13788596],
       [ 24.75103889],
       [ 17.79850849],
       [ 28.25355787],
       [ 23.05477115],
       [ 22.80197219],
       [ 16.39277081],
       [ 16.78063286],
       [ 19.09289794],
       [ 18.40231792],
       [ 28.69011876],
       [ 26.36691692],
       [ 29.14447604],
       [ 26.46259793],
       [ 27.93103502],
       [ 18.59402553],
       [ 22.6122116 ],
       [ 18.9283095 ],
       [ 19.67241274],
       [ 23.23335702],
       [ 23.77991652],
       [ 24.1252912 ],
       [ 24.73390047],
       [ 16.54205172],
       [ 17.23288281],
       [ 17.01757553],
       [ 18.90473711],
       [ 26.51343918],
       [ 26.15347538],
       [ 28.31032188],
       [ 26.11899291],
       [ 27.87321554],
       [ 27.14544605],
       [ 27.58517331],
       [ 26.07680643],
       [ 23.73286743],
       [ 24.6445861 ],
       [ 26.04460829],
       [ 31.57434752],
       [ 27.62443486],
       [ 30.48889564],
       [ 29.82537359],
       [ 28.82682391],
       [ 22.25617322],
       [ 20.01869041],
       [ 20.07919328],
       [ 25.96555974],
       [ 26.04719813],
       [ 24.92035382],
       [ 26.92964495],
       [ 25.01666231],
       [ 25.19203683],
       [ 24.20453005],
       [ 25.33178727],
       [ 25.64225448],
       [ 23.48618021],
       [ 20.37186393],
       [ 22.52846163],
       [ 19.50030524],
       [ 20.00204527],
       [ 28.48089067],
       [ 26.41659406],
       [ 27.03683589],
       [ 27.2096155 ],
       [ 26.78925587],
       [ 27.41447406],
       [ 27.95916844],
       [ 27.05840657],
       [ 26.3596649 ],
       [ 23.67393312],
       [ 27.06803754],
       [ 24.63041457],
       [ 27.79402174],
       [ 28.55369367],
       [ 25.0486948 ],
       [ 27.23440209],
       [ 28.84118448],
       [ 26.70069707],
       [ 25.69383565],
       [ 22.31185907],
       [ 21.32683219],
       [ 20.55531587],
       [ 22.07373032],
       [ 21.08386165],
       [ 21.06435158],
       [ 22.64009674],
       [ 20.32270692],
       [ 28.34713295],
       [ 29.02684174],
       [ 28.45860471],
       [ 27.94940959],
       [ 28.77521283],
       [ 23.0116171 ],
       [ 32.83348109],
       [ 27.03402833],
       [ 27.53365793],
       [ 28.52323832],
       [ 31.22472329],
       [ 28.55391923],
       [ 28.20141732],
       [ 23.81933747],
       [ 24.62063369],
       [ 26.73948366],
       [ 29.44747939],
       [ 32.034485  ],
       [ 29.94194623],
       [ 30.65630092],
       [ 29.4718087 ],
       [ 30.30261156],
       [ 31.19880702],
       [ 27.93881954],
       [ 30.02161078],
       [ 29.03262921],
       [ 30.48226871],
       [ 29.1104663 ],
       [ 29.54129732],
       [ 31.41387829],
       [ 28.08397111],
       [ 32.14649715],
       [ 33.59771789],
       [ 34.4977575 ],
       [ 30.7384813 ],
       [ 32.08605656],
       [ 29.3004047 ],
       [ 31.33570557],
       [ 30.18092751],
       [ 24.56686911],
       [ 28.87374925],
       [ 29.10285911],
       [ 30.54519389],
       [ 30.35161823],
       [ 30.48003762],
       [ 29.29819601],
       [ 26.45333636],
       [ 28.88198583],
       [ 32.25259081],
       [ 31.78297205],
       [ 31.77612047],
       [ 32.2915108 ],
       [ 33.372129  ],
       [ 32.11822216],
       [ 31.40423794],
       [ 30.4982682 ],
       [ 31.41837601],
       [ 33.63807231],
       [ 30.07776192],
       [ 30.15013706],
       [ 31.35846317],
       [ 29.80516873],
       [ 31.85176368],
       [ 32.30365196],
       [ 30.38113879],
       [ 26.31819917],
       [ 27.13088933],
       [ 27.14722491],
       [ 26.14455044],
       [ 28.54521438],
       [ 27.71978708],
       [ 33.60270375],
       [ 33.01581737],
       [ 32.89122622],
       [ 31.74893675],
       [ 31.48752402],
       [ 32.25599283],
       [ 31.33868207],
       [ 31.86880211],
       [ 33.5940656 ],
       [ 33.30694539],
       [ 31.46262759],
       [ 32.93769603],
       [ 31.07423111],
       [ 31.20887013],
       [ 32.52638735],
       [ 31.86789065],
       [ 32.25775342],
       [ 32.51056435],
       [ 29.31160002],
       [ 29.00850824],
       [ 30.38259156],
       [ 28.01143824],
       [ 30.06412662],
       [ 29.94927306],
       [ 31.6822156 ],
       [ 30.98566022],
       [ 37.09285693],
       [ 29.23370372],
       [ 33.00251369],
       [ 33.36120492]])