Skip to content

Instantly share code, notes, and snippets.

@koaning
Last active November 29, 2019 11:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save koaning/4ae50aa9147ef2e9ded3c73dd3bc059a to your computer and use it in GitHub Desktop.
Save koaning/4ae50aa9147ef2e9ded3c73dd3bc059a to your computer and use it in GitHub Desktop.
feedback experiment
x y z
575.9169941454602 456.4364641163653 b
524.7679233463399 454.659622813655 b
536.1853203147283 414.6387874887763 b
554.7345847720682 392.6003138461853 b
558.7216445350003 455.7009797890023 b
512.1738453368777 407.6844578991705 b
494.68119055863497 379.00447835274645 b
521.4275424582694 409.29480593833387 b
504.69631038511756 417.3711528143935 b
498.3523877650238 398.72500057876795 b
436.88966873220795 393.43216528522714 b
468.1925348790828 355.3820561312642 b
492.40004366304925 330.38219407536496 b
489.62094501663154 371.2416009191415 b
441.95312904268434 307.2870646238845 b
425.664219239977 372.41938397259514 b
423.9872922860872 354.40268151928035 b
429.8995202723128 389.532606044999 b
399.69824267145265 337.9760120625341 b
368.805288622383 339.6771238779362 b
386.12831536885113 310.1403576893731 b
395.07749771759995 324.74647135309857 b
377.36984196814456 323.76876684639734 b
309.72653366617396 316.16716150086006 b
323.8073794959264 274.8544752726217 b
332.24545067607556 289.9851798169651 b
285.02790120462464 287.3841677828848 b
293.21167016609695 317.33979190940306 b
263.49203931317925 281.0441395523608 b
302.4245254957843 222.83185637875079 b
277.14910991426245 246.7762842194319 b
255.06627636314732 266.56365554948366 b
262.2234638659244 246.94819147978822 b
238.55111844583863 156.45017357266937 b
257.23347216946604 217.0809264183406 b
239.02647317163022 201.6112167942785 b
235.90715981867945 189.47795168281505 b
246.83451106206968 224.46500553851445 b
180.11926108053055 229.7853832140429 b
180.0057830726046 211.11178650954997 b
158.60955384337365 172.59708166468602 b
200.1062934270468 162.5676094968743 b
198.28390680852576 219.27901282186195 b
171.20137822778605 202.64631549983784 b
208.5583608230552 184.4495452298449 b
146.4089032698638 172.6214845133448 b
132.3265598323572 187.55929908936332 b
143.12784852465774 116.36129497751676 b
180.59435676460987 144.9659852555626 b
114.85674859140991 160.7788634836329 b
141.01714063810658 165.17675573176302 b
123.71736591371987 135.4022822389531 b
98.28727640597437 111.40087602274883 b
104.23474316817843 103.2918935004713 b
99.41084802679462 129.86753187254084 b
102.56613001490642 117.09370011231465 b
131.14619985168918 124.23272817199063 b
59.09810698176116 140.76165192159698 b
93.56973968689712 75.26148148648866 b
83.68286548179525 143.0261306881427 b
36.77859503269445 100.9190382404608 b
50.054156037018465 82.3448658976215 b
69.34403853888927 77.48930811599735 b
74.52500947760413 28.09771528371448 b
67.2195262549806 85.77533209186186 b
57.21601217601298 92.61493865336865 b
53.403883874300355 30.023958738249803 b
59.19432645538881 106.85403088586696 b
72.21155457979393 24.662752254726797 b
66.57892667905438 82.54183087832604 b
61.36707652641212 107.47590980421842 b
103.87089402878306 74.03269111048581 b
86.3617242141827 87.3302923870823 b
66.95030040122943 64.1108847407171 b
122.68470813617046 54.82745521347255 b
131.35292604904495 103.68707066894171 b
106.13124639225329 72.25534239961121 b
128.80612613896423 127.41695072384783 b
134.7870696871796 78.24263951785252 b
120.56142069697188 102.84658489576435 b
174.79059273860634 114.78193394867645 b
171.52489870813486 130.96967555632926 b
165.16770014279496 132.66648959903904 b
193.17530727614198 135.20104692001206 b
185.36350492306266 96.76802824573582 b
194.86007778523697 124.81209981170457 b
195.93390620694177 146.6689029660277 b
199.79762042733307 169.4112709017146 b
237.03172615652474 150.80379213748927 b
214.46038066829402 150.91956546562693 b
221.67394052099775 149.7508574948427 b
233.68027056039645 148.82156539560026 b
216.27739348366248 154.83641997699544 b
217.41752308093362 142.90831907912718 b
273.94056481353107 123.53950035571955 b
286.05534341442865 244.82584543391135 b
281.8047781711327 179.02288484152 b
316.67679305472643 242.96586116107392 b
283.1868088736751 184.39204009156055 b
300.7071516701415 208.39166257585356 b
367.2861779891235 214.43653714434953 b
308.8845417966666 205.9974935242039 b
338.73397444378645 250.73821801277884 b
337.6903778733719 207.39884742328655 b
379.36083712140896 248.74798320519884 b
416.8920218697367 282.95162529755305 b
309.77956560007124 259.1366342728014 b
369.7113853361333 281.43329705850044 b
372.47518171054776 233.62117968779125 b
350.22416501497537 274.79508616143517 b
392.26669651531233 295.97324151667664 b
395.41814604520334 275.90230396554387 b
443.6763765475456 315.3135931771353 b
449.20365065581467 266.87386815352824 b
411.7717060356502 296.21977959725706 b
512.4918758487357 282.78572653953876 b
498.70882719368353 304.1790936583576 b
513.362982923139 309.6159715470688 b
475.3511357956712 362.37263584265474 b
494.1245845598522 316.41142420389065 b
480.91961895513225 357.97068431946934 b
566.9566322996207 387.01578221941867 b
545.4654137976279 344.00703245920585 b
510.97641382405254 385.48662997852955 b
566.7125285302739 392.79953040150286 b
594.5373251363189 394.3955351070054 b
550.2552763125503 418.91234311481804 b
547.6158169234128 366.5364702433278 b
542.5117785911658 388.93521399542544 b
631.5305264563476 423.8225565816943 b
568.4424208034735 425.03782492757 b
595.9954503050379 406.97024323188555 b
574.8609460201296 407.81101459692434 b
606.4584196749412 474.3355060502123 b
572.028050222713 446.2876581234175 b
620.6693012249477 494.57173393685855 b
630.8818342677743 426.74774028876084 b
599.2141441053111 456.2942237682601 b
662.2943459748774 457.7961322910931 b
640.2909938177 451.87123366889523 b
614.391484569502 438.6794278966266 b
648.834266962795 416.66809438781297 b
633.3881863801223 446.523079646027 b
560.2302193639173 388.15726662688155 b
574.1754819107481 422.8957864835638 b
561.2712569964676 444.8061090893354 b
577.3250045296542 405.01470759765664 b
582.7921898158568 406.23611980703095 b
508.3542697962873 393.3006764301155 b
499.57237284030003 361.97800462844503 b
509.16773776661 386.2520993990456 b
484.03121949764886 364.48502457564706 b
439.7002984827311 391.74239194024193 b
508.9177405402307 370.2612007990949 b
470.6781422695919 361.1738245231683 b
451.3592864183986 332.0799097121924 b
429.385593481839 304.7734036212723 b
455.4681976507346 379.1513820703341 b
446.0053461743957 326.67040275491814 b
416.2863965584271 345.2993792134449 b
482.41366346389566 301.93708459513846 b
409.10325951013135 307.2490236422417 b
422.871559608194 311.1746824468836 b
373.81169110138256 322.8674807018739 b
385.3927870351948 364.68141427914225 b
364.7193787421649 309.32373845449047 b
397.5745971097274 307.1297230470823 b
343.8684730905942 276.4554299305947 b
337.7846020544428 273.23815238899743 b
322.02443444805203 273.2791432252117 b
322.44371300469743 261.0006420195791 b
287.9077867408481 235.98040371974372 b
273.63134358787795 273.3146354214336 b
270.93055514597387 206.54457557867164 b
224.6460496256044 197.91037194507504 b
247.945376873294 237.24627620747162 b
245.55582619585314 214.74040942893515 b
255.71052071110012 159.8848888906029 b
174.6448127030617 179.4600252945367 b
191.73353448439354 175.18635789984012 b
225.5476773642895 181.1216178613621 b
194.4781880715305 206.27707832657256 b
198.79418466907904 154.77924739052003 b
220.143802356879 185.4524407307798 b
164.17319654813687 214.3290202331201 b
160.14195657014722 189.98540218373847 b
182.08649443252756 163.5360719770112 b
132.5971586482883 202.1575569452076 b
169.37715736755052 125.74651632186328 b
125.37304047067241 157.74732247104987 b
137.86400062599347 166.63705991468169 b
159.10871147680024 169.81633207102192 b
210.53283372484734 145.56519165157817 b
145.6350251640658 178.37644711460422 b
535.7590767844729 451.9556478387248 a
473.5027811474915 452.9076124443001 a
462.4802042292075 457.58817789543343 a
445.69180999599786 450.8005700546178 a
477.8037167472393 466.0131048482152 a
450.21471473489464 445.9579715506564 a
388.55751721812794 468.83357381269104 a
446.2114591891218 432.26958087677053 a
438.35958237763367 426.5432562051658 a
409.6926889123812 411.5293556348283 a
405.85981743340346 483.6013642686888 a
373.35104931559226 482.27657438566666 a
361.5745487437333 422.88513332683556 a
386.4965774684274 395.5480028358958 a
349.02359275070324 454.32943260127155 a
340.20505341720263 383.0117356418572 a
326.99848845628037 368.9727770880115 a
341.9957868874402 384.7326634704787 a
336.6237429660475 364.7338491391724 a
327.7889194333915 420.0776464673462 a
274.68814730499986 369.3622276195277 a
276.77140267213906 372.6919701268946 a
287.91577903878266 380.21277159377803 a
250.92336098999948 341.44076858192415 a
294.618960831651 369.2771994342441 a
310.79449804229745 357.026683101955 a
277.9165329303457 319.9233041099804 a
272.8788199566711 265.2915395571223 a
278.03821269246555 339.962835325991 a
256.677965260997 306.9373417972413 a
216.74196582906643 285.54799381424664 a
218.33514217982508 306.86312089681235 a
209.66350942493318 295.27361998557535 a
224.06094658203705 300.0848677977249 a
212.59868873938368 269.3363617393793 a
216.9691977505254 320.5409548481234 a
224.02343232057007 238.009053825078 a
189.59018286508964 242.0761666423915 a
182.43206842598434 323.7705629842113 a
129.05272164713028 226.97054850336116 a
131.43199637205865 249.83885816987424 a
169.49992310687566 226.31695848130636 a
159.80881440563326 221.81273062010393 a
133.49233522623305 206.49961989408553 a
131.52556015979897 204.88015467216007 a
125.84416186054636 210.00924982362943 a
149.62282642817163 234.55309037683514 a
85.42345892185 212.16297235663302 a
127.67452057864705 191.08448585967864 a
130.92885632660702 193.75088314192675 a
103.57587672951685 226.1343755737131 a
37.886817598636625 168.46507508275846 a
89.10363557031229 162.76830097021383 a
47.79952170937177 210.80349728875598 a
68.27783618170311 148.11568279066756 a
73.13975795537704 160.74674271638554 a
106.64652731520543 186.4321499971686 a
75.3127440941161 154.18241292789713 a
66.79777877105947 177.11863945057132 a
91.68089534847695 146.91153821040393 a
32.8831432953559 200.4155154522797 a
66.97328638767937 204.96524259608623 a
65.60288019241693 209.1198140314662 a
71.92358713509125 244.66304579564712 a
63.826433031601354 193.60726174364885 a
-0.4412173814876752 152.9369196639385 a
49.90346130016674 229.44861995470592 a
122.37278803308524 214.70791607890345 a
100.19923692806282 266.34375026204225 a
107.11995060664634 282.84837305669663 a
36.88437542824804 286.09323831766295 a
92.05690778571821 326.3705008852496 a
80.16484076260154 310.250441875597 a
87.23518483470224 332.9276689068645 a
92.0390129871091 318.4753438215766 a
71.76572403019155 314.6983806764184 a
94.3040440264597 316.9060733151633 a
127.00080233994127 362.6914629500509 a
121.71172668027181 396.52009973964044 a
88.84992641075645 339.48782017199846 a
116.66101835243082 340.42096608320054 a
61.713409021522395 366.8367494458645 a
71.020723097943 353.9027145371574 a
86.9815908863003 393.2174547467042 a
63.87372940078188 355.17236484520953 a
87.8101438555018 360.611995501508 a
73.14807937369244 318.60825598100274 a
86.159620561315 355.06673225102656 a
80.92000959434323 372.14847833408504 a
102.05778121622454 371.48444254994644 a
142.6804223665087 402.25413986756394 a
74.94780867177745 427.3111211417345 a
93.55415787849724 379.97002575774786 a
141.13592402140716 382.5027411108779 a
110.15432513879024 378.63574669776364 a
50.17680620440844 385.2855123077692 a
97.5466070661386 390.60704933546936 a
69.302454763672 418.08303814284716 a
91.41087622969567 405.17277605063356 a
84.94662365462757 468.30676992645425 a
107.59295145499516 451.0354980573161 a
88.80716595424177 457.8244908674817 a
126.72373130179754 426.36922623231465 a
124.70378068018269 409.8800312375357 a
114.39494573775593 440.94329864864386 a
146.3405940782719 425.01186370453416 a
147.14137497988114 406.3445086082405 a
151.4898565587609 453.1835891613123 a
172.71934174538103 483.9683387393068 a
192.72154104240997 432.5456706262696 a
153.03320718898794 422.79947010673163 a
233.13865404111007 438.53828932038994 a
183.0897890322524 452.36079171465815 a
214.4482396657536 376.848777880105 a
246.63945482470552 452.58700651596735 a
269.9909151858912 449.0227914026141 a
305.91703244533034 470.1817417952544 a
346.5958000524464 482.61727059925147 a
279.9297156000948 494.9007803548282 a
350.222788818897 442.74408547360775 a
331.63129865097665 463.3700946928854 a
323.71720411309786 429.0391977584296 a
354.7934070137635 454.67158868753245 a
387.84445072554513 448.79538707423285 a
337.39242713465217 481.26386591389564 a
371.05795309136965 469.1205902511117 a
370.4444245415455 437.08403121662707 a
371.10169912085695 475.80609642996535 a
379.71588458205196 464.98182598107866 a
384.7042105644667 452.9277245349475 a
351.9312436937066 458.93694617694416 a
391.5226849341369 464.8396392935821 a
371.1256655154813 448.2550464688344 a
335.58793850917056 460.4437279677826 a
330.686953275728 484.0665558066659 a
333.33442603940483 412.5189021325885 a
308.7277209997348 455.62789274046656 a
327.1822538914379 428.19079944571047 a
305.3975431989847 414.343103571259 a
322.235241304753 402.68712941709066 a
334.1438178244807 431.76549661671186 a
320.38825616639264 399.50988800821074 a
262.41776987680447 360.4936610612746 a
235.77850402232045 422.8839414414848 a
245.51860403388812 386.72097740581154 a
292.6209940088618 405.3232547059908 a
302.73365832799436 392.9742180812714 a
293.687889964061 329.40124564889027 a
232.85693548322945 356.29360882640316 a
234.03038479893354 357.0889863116129 a
207.55950153348215 347.2373761809888 a
171.6320046985519 312.2191745135583 a
219.11508815183237 296.5742815231012 a
158.83635778509196 296.12581246813625 a
204.9238040201073 281.69895901628195 a
199.27388954736114 282.67471634057677 a
161.1815354969237 280.36940374288156 a
185.21231868398195 281.8408723412742 a
147.35256706541992 312.5541437494322 a
146.0350645771442 299.1006913191003 a
151.52540310884498 278.15518933390604 a
141.10615787894716 306.1990823952244 a
167.21500432596468 297.0947400004487 a
99.30152830096247 209.173882124908 a
159.5164002760991 268.4172250051137 a
172.55755994241213 311.7954146554505 a
142.95635054059085 278.0389954511641 a
157.76649912637185 291.71122512021236 a
157.57318919321884 332.00339733611156 a
96.44373268999003 338.0762422503699 a
146.7797867715082 350.76852006541304 a
172.9538386537392 313.32684053055254 a
143.90664423271008 348.45856525276315 a
156.1141817687957 342.3159483366459 a
180.7215507132119 326.3700698769884 a
171.73330310326173 406.1985881040486 a
256.09046848146835 360.52386477535725 a
217.1644506433975 401.00151322899126 a
215.3042660196551 364.51366970119716 a
166.56409399647646 390.37169461214336 a
173.24860871849265 348.8264190119255 a
188.45565942246122 372.7363320760432 a
213.15834084832008 381.5459579026931 a
183.7093587666694 358.78451789043993 a
156.91109244407468 352.02315807631237 a
211.71081759308188 419.85905617329126 a
199.74281827034432 356.331583428733 a
186.637816435557 379.75520032213126 a
161.189172979707 394.5750237249026 a
174.05350572734827 370.15605287428286 a
632.5763239481478 387.01096701523625 a
610.7256311481812 388.2295787783629 a
624.1914666171386 337.18301086993085 a
617.608839507767 400.0436549661364 a
620.693019222763 401.50966183272453 a
548.7143357315312 375.64769809292375 a
593.3526708664299 350.73425339984226 a
608.3629044271986 371.32900590497604 a
572.5985714717855 374.8295956812076 a
545.569121329655 325.62729807211906 a
590.7146637546649 278.7341300088088 a
547.9368780684058 322.8713658655895 a
505.4583821523469 329.9995493975856 a
498.6463216862326 261.90787674889 a
431.3735603821852 267.508003879241 a
507.7863981442201 249.2986382318562 a
506.66442920752 261.5276938062117 a
516.49401763756 241.96177427910402 a
445.8344362703048 205.46471379002412 a
494.42284294776766 244.55871797498074 a
447.81164330896297 170.91478349968338 a
474.9643577023665 257.29240892828625 a
485.3633912264941 174.45070991565706 a
392.2772999797213 192.7841706303588 a
394.58617951253393 189.43611199348885 a
409.30290704059763 174.5458097358926 a
311.5966340873092 201.79408702747736 a
388.42762188517196 153.45531302975218 a
370.378346417783 142.458521186425 a
361.15301796449245 137.82996199712068 a
313.0622665881535 153.55560638320463 a
343.88961613116646 195.75626213363887 a
350.6164977373544 125.70154912170597 a
331.4338699190666 87.33531127455069 a
297.13297753911496 90.08274183166225 a
285.20705904444105 73.55524911918008 a
297.70263748103855 50.806866133226436 a
300.608310790222 63.39598384557195 a
317.7942246763428 111.63111799671321 a
270.6817280404814 74.69585170981173 a
303.25746890279686 80.05472684800372 a
304.1158711293129 34.054377784243115 a
236.6290769876107 70.6940994599388 a
236.92734617947212 4.882068184730599 a
266.0325280795935 67.99310887980192 a
253.5331366933682 58.50283540466535 a
227.54637035698838 52.20953309493882 a
172.64163295601304 33.175605656361824 a
172.9752972002593 92.09328413864716 a
234.78357256120916 28.815650160899054 a
177.71746542098634 -5.516049068426014 a
198.8231591216453 19.9532325644754 a
196.62324220426652 46.538775403248565 a
203.9721128387723 16.502513186304498 a
236.56755894142074 -16.116412777551545 a
158.3262014308967 69.8095720267064 a
176.12641126735787 7.86991641553243 a
185.94920683087972 8.581148846428277 a
141.72391484306053 68.67058228471626 a
208.85110537879504 46.474931151556746 a
133.81282947466306 26.884643663512236 a
155.6801196656192 -6.856529303994876 a
189.62471732430703 30.367246117155503 a
202.25437995900953 65.28201973308137 a
175.28249825430382 56.38579964737994 a
188.99553238280183 106.01536061478953 a
226.33894919637467 94.42524639047241 a
246.29191402489576 87.95638675101907 a
247.51484705906225 30.026453551723193 a
261.00126784403346 108.66763655826577 a
282.4270950174148 86.06672451400101 a
254.34815731109083 102.83663298304367 a
267.9871908816547 61.52220709971357 a
291.91797870561766 39.203471420014296 a
346.55796986463787 113.93997259205662 a
346.5564967008287 99.07983297053823 a
392.9044565552499 102.97235137127223 a
388.4997559176176 81.45536002016604 a
436.3454238985338 81.84025873439037 a
427.0827583491926 107.91660827059331 a
430.08848365345665 78.92558910800949 a
477.6490821161483 75.07400741857072 a
495.07779770418017 65.4984815635292 a
477.04624039200354 85.47547086991648 a
511.47491544407666 60.518790175761524 a
464.1993596845457 59.55237522104164 a
557.8750658286174 78.9380616859437 a
526.8280766943345 44.420169302830004 a
617.1872264070162 55.85026681888996 a
589.7671925470502 41.58808789262446 a
566.6543009355837 32.168741124776886 a
593.3405276894011 40.09403997468445 a
625.0432341356969 3.4454180761639464 a
611.9764709079815 36.17025363507503 a
641.2278037619312 41.07960632274461 a
658.5302867838814 36.48411746312331 a
661.5624401023022 83.00586587719062 a
639.8856598657152 53.6820576389639 a
637.8951822448339 82.41900280492877 a
666.6644243116584 49.961454185023456 a
679.4509392822921 61.860556107651064 a
665.3150171354371 11.662504664201379 a
638.0825569591424 20.400433193939136 a
658.9870216040389 33.46772036060878 a
670.7479448162609 70.46451702380239 a
652.0068005926122 66.67731738854746 a
640.3215722790444 73.56303588031204 a
670.0619246131702 59.79694838453395 a
649.4477589159027 84.93028748365674 a
635.0699700316798 122.8015408518529 a
652.7538320219327 132.7050884851297 a
700.1789807786314 128.9164621642983 a
625.6674343734264 145.48070324369615 a
654.7703021189369 175.6651474221727 a
661.9496183063288 179.05348256636944 a
628.3175335604697 205.68242288025738 a
665.8236531829901 181.75418655744534 a
630.4476490879294 257.304842155533 a
634.4187957152285 251.47758800167074 a
635.5449226052115 274.255280767339 a
642.8720220667554 255.70793852067317 a
633.891381692878 325.7148287116824 a
601.4725672674687 282.2473034690212 a
618.2156282905054 301.0961369439088 a
671.8051074506991 308.2612187791683 a
651.8464579498334 295.07049446557255 a
593.4323082970999 328.96170372611147 a
641.2157486353126 322.3881377921874 a
673.5973336067738 304.08984269084215 a
611.8773653720018 297.083364794356 a
631.9468803298631 336.94458874550224 a
632.8314404055344 301.4790614460593 a
649.4469621103591 289.94381013302194 a
543.4694269063066 275.3357320722204 a
546.1585550764112 259.0288760850515 a
531.6560367246876 234.22031245291913 a
482.47853856375 201.22981075044146 a
509.6804870331014 214.0401221130241 a
516.0326135707317 233.75640146881034 a
428.3555949299489 180.76941706940596 a
504.72101131790043 171.47103628386685 a
447.3821592158177 162.76711244931272 a
444.6044924030935 136.94877971896688 a
427.52808526076797 128.36193871187623 a
404.4682064702493 144.05391341505816 a
428.95167358192975 89.4823582206044 a
390.94590583812675 131.325723286148 a
407.4790053490814 143.60217351843562 a
434.86678197862733 113.29225049203376 a
371.67033516575884 90.38165989677782 a
446.17514494881533 81.15865378127472 a
368.1012596323774 122.07392725428917 a
412.85899837694944 80.41472183585046 a
420.82543983772376 88.92286732460951 a
410.12153815676857 109.04848955497187 a
410.3660848891683 63.60766448241884 a
472.04323479931554 74.79903409261192 a
364.68306890853586 80.3912835697327 a
446.4904771012675 64.97490073559408 a
495.54327217690735 36.5484778570235 a
518.7230441227356 80.85633722152176 a
482.5015303634509 75.55440752559531 a
490.2762375936475 61.41395588294421 a
478.59223507889203 104.88427657146241 a
487.15016828712567 34.41384035290662 a
472.5914342996995 65.79869878638328 a
480.234754216957 40.93486470993844 a
477.31379630420867 45.679913281616166 a
452.1116553820296 -16.099364009627266 a
426.223390643141 -1.5760561210394712 a
452.91543799309244 17.258706188761607 a
383.8846627738298 -7.058815290469909 a
365.994743367095 16.357022638406136 a
408.37722302551924 23.438026586272315 a
408.38759778513224 -11.681386066046514 a
419.71233794304686 17.423376237827256 a
380.28232546927273 14.540950409164054 a
456.24220971801765 36.10737848704679 a
364.9289706077662 -0.6349093922827933 a
395.3068342380375 71.40813986494749 a
442.73849231500185 74.76126933203716 a
407.28954902486754 19.72550650079023 a
508.27825669031256 103.38858807133698 a
499.0894231338087 83.25152560750485 a
537.0955258603174 32.79055109953026 a
514.614057909678 58.61062941872069 a
583.4723691785051 35.36600629870179 a
597.7192558520119 65.61254351957189 a
591.4503712754695 85.92709690530353 a
645.2585217195227 55.681995371915605 a
646.599122320739 69.33324953395538 a
628.5302183880184 91.10478277100816 a
669.9154035857852 97.2205520284873 a
612.3660340789402 34.54933694228379 a
663.4033709173009 76.64123419755794 a
627.4785001900136 126.42199828957274 a
670.4089367188257 167.22032420961932 a
668.9268723761907 222.76069520406634 a
671.674264936171 183.61385458599727 a
644.982808649862 182.08522108676533 a
597.7513098475765 214.05185283166446 a
586.5612850344294 224.12120330321 a
565.0892618901013 217.1516108966427 a
535.9273881883454 245.7855076299414 a
558.3878106244981 173.2364087568675 a
578.772274144876 242.83484507089253 a
572.0986844532183 225.92777204878166 a
530.8267265792645 254.98620630075925 a
544.4592146855712 193.90905070778075 a
534.8178081979081 165.1795481368423 a
540.5016863904951 158.63263133724752 a
535.0275467738963 188.19501020435177 a
544.9142750917338 163.1475406667875 a
540.3993881603108 128.38903873811074 a
506.68123814774043 172.73366400021064 a
571.394769235213 132.90524507435066 a
489.94664780550653 164.68427097850406 a
559.0098856470323 128.47374503712518 a
517.9414320681931 120.03916933752151 a
524.2040975518435 149.5873277214331 a
536.636709305615 107.49808882160846 a
525.1182808142446 126.54410499158894 a
534.5834696973428 91.49734475121016 a
495.36485318197174 130.36419021107076 a
537.3350248443198 56.166355595640596 a
546.5166292946601 68.50723487142574 a
479.05731089401127 89.69075150887471 a
493.3744584971332 104.13741185047792 a
482.78583152954445 82.09303642668601 a
494.79900244196875 126.88146650948988 a
427.5448754651683 87.44024049317335 a
448.84728531313937 86.107248626287 a
450.93058357617645 127.04389042201876 a
454.0262223192385 128.51607342284274 a
469.1521015300169 110.28132662774425 a
484.0141365624115 141.7492165908837 a
499.07484458210126 163.4235996882639 a
528.860403868914 114.08901694517476 a
549.9809738734824 143.63916916552603 a
622.0561598722102 170.1264666834212 a
611.6039877804938 137.9702724485851 a
660.3909462558526 87.74345838731375 a
670.6835346048913 78.48740811108769 a
639.8682588715237 104.94957476468227 a
672.8167325006134 102.91789627491517 a
568.3421618061901 84.48198417360953 a
665.4328223126731 121.57025949527883 a
658.9797249512892 76.48544673863466 a
645.7993569312207 127.89231405409777 a
671.5188548989422 129.97442316778944 a
661.8405119213818 143.6246350916703 a
648.0875127981864 185.15746773289243 a
628.4135235849469 179.8784427993562 a
594.7058316960483 159.09534286879637 a
578.4263820593192 212.4948409162884 a
544.8772036958717 177.23009105856715 a
569.1041166328046 132.46116370867242 a
517.0669345611708 186.11902490243898 a
515.863044343947 175.94164290682698 a
490.4046225175875 130.73530526858337 a
506.77139996437387 160.1664290959149 a
563.0735937944257 170.72698876750837 a
509.34334191118893 140.39229651870534 a
479.75068641627587 145.00240008578436 a
510.51333285105954 166.54822185467424 a
472.96939021408843 180.5423514991192 a
425.2697429097699 173.03395618579611 a
498.63973050898863 175.13577939862495 a
403.1585361762481 187.02364071063215 a
404.2530840804495 206.86743036432887 a
415.09125981950194 189.83192199760884 a
412.76892767875626 171.79555736106693 a
430.9720868874143 239.77123163904304 a
421.5196359263307 201.0335254332379 a
406.190419524896 214.37184656320431 a
367.95092407681847 211.55926688730233 a
415.83056526399963 210.07228685966004 a
400.4304083846661 255.16503442360403 a
380.963855744015 209.26728255820433 a
411.8514393196012 231.6482528595493 a
395.6152267033652 231.689713412377 a
397.2952765625632 206.64993745207568 a
381.29449074082163 202.93694830739776 a
360.5302833254207 175.63038852325593 a
362.0173608638431 170.11774535531976 a
350.06393091254887 210.72661498421166 a
348.91200444071177 162.5555894539459 a
348.84697806070966 183.6856674187532 a
333.1184653794517 238.5376181156666 a
383.7030848627889 163.93865737093626 a
334.3917271079478 172.97186996729823 a
292.64747722945225 189.08021431310726 a
320.0385084025118 146.6874031318348 a
265.3444489243393 138.74920793264886 a
310.24329303306683 142.90027111977236 a
277.69016897477786 132.10924235653295 a
297.6604574246715 92.04002176364298 a
353.09315220457506 140.71139997212163 a
319.2549330591755 81.20082121932313 a
320.71201223596785 106.4096757841885 a
359.5834538170858 69.75298512693774 a
331.8479288575299 73.63368700745923 a
334.0725308160519 57.90403236182675 a
337.46906384318834 72.76783177338137 a
338.3927428623395 46.62429002269943 a
346.85839326690177 19.109264415096334 a
326.167471313493 3.1004323168590417 a
368.45660826571776 40.46910390579427 a
287.17858539809225 60.77941756439509 a
316.65029017602217 28.25135931995385 a
355.0569225895105 63.660712891990954 a
363.67764849079026 51.1662690286808 a
360.22179793774615 64.28398259505104 a
361.6294470048989 80.23717576572068 a
379.874623718873 44.47040930663019 a
381.5817888089117 95.297360228 a
381.893793059629 38.33617543311095 a
441.6193642749105 100.71308860729039 a
443.7881982148743 61.142759857970134 a
425.1019575256662 73.36428883467943 a
459.6591002884018 101.94607055457323 a
457.2541453014897 52.88496345015949 a
485.3380640663423 94.2126202090538 a
467.4857472306069 94.9695767862305 a
516.6951221413085 114.01068458292116 a
460.1214123947932 106.48919982167922 a
567.7681975943017 84.81133813090707 a
557.4015580473829 97.03459868549913 a
542.1159083140864 93.13498987626605 a
554.7147543315607 115.41604781538234 a
569.6038842032071 76.13622207439727 a
547.5615484603828 53.783485377099794 a
527.9805723500256 20.52818231007427 a
554.2837335217921 50.48490672362101 a
592.1557393872887 110.5142259492601 a
534.9137905329503 66.347140167958 a
526.7867781116528 64.18373725097433 a
546.7294375439606 34.437672498999746 a
575.6781316740617 54.05034112133791 a
603.9187991479774 83.1918430123186 a
569.4463763411558 89.12371517614116 a
576.4102392847312 61.82889350014773 a
546.4643367795563 59.60011117973545 a
558.4479295264683 98.3961632253496 a
548.1573918441568 82.12355908041206 a
541.9042654918243 96.14977092508929 a
574.7898266509872 93.44182244539257 a
615.1927242959239 107.11192650572048 a
606.5699190551921 143.51611861746585 a
x y z
90.89276639607448 460.6019989293926 a
156.51490668485263 451.09347746800086 a
119.89336706518552 426.1001275195141 a
107.8815566737749 484.06357668404877 a
124.48005468596449 471.98988872215796 a
114.02637802136806 479.9310137716263 a
92.39008335649427 451.81310131937306 a
128.5845818728375 429.3978749304964 a
168.65664162446873 447.89363455857426 a
105.47873484786614 467.4626553516066 a
88.35194710164043 400.84416676794217 a
110.25768310026956 446.1362915703869 a
6.9646347922223555 396.7920737446648 a
101.20812728558518 390.19681420920017 a
66.2982335779246 422.6385540415278 a
80.09829180345493 354.9112200929825 a
57.234466556855985 393.69622237102476 a
84.80942661243256 353.47245883094934 a
40.18716456463276 364.29139266447277 a
74.64983804113446 379.83426323681846 a
57.73147696868085 370.63932494192693 a
96.11832928761842 346.3733257107301 a
50.382380896599976 347.95049944015284 a
68.1064684901792 376.79327446608 a
26.66992676655037 338.6581475522308 a
117.67878280656552 319.3890206147132 a
58.36384506674877 332.5024284864772 a
62.296127128450415 329.6368209708608 a
74.46217975092587 274.296053867876 a
49.028987475057676 317.3984367962218 a
84.0826038323535 345.7423629002781 a
25.530694570739904 283.8775255570547 a
115.59769133133311 285.09339412170084 a
111.63013672428036 347.4821112107787 a
80.51336159378266 324.1993124014559 a
72.38809515237438 336.41241419649265 a
109.82293458633185 268.16611384599855 a
57.02742182705859 339.7066614578753 a
34.64261132322474 329.3989597229132 a
75.68390609510305 296.5905825929454 a
112.36854427590382 325.50186800346876 a
55.41465862280849 322.9015892016729 a
132.7339285340527 323.2133391450047 a
76.5003020304755 330.6956996371299 a
75.62023706296323 305.98053956401833 a
134.99334079093404 329.0669067970765 a
119.5093486660051 364.01567428483236 a
130.7978018641102 346.374950516187 a
113.40943879366367 351.461510317256 a
138.3639998907586 283.81972716472205 a
156.43447836384115 280.9651195439075 a
140.09565903627703 289.4924053447677 a
151.2193014126254 329.1335258717081 a
143.45294549009773 323.89843543707303 a
170.73289334722799 305.1026646966918 a
139.2929724709598 300.1742059538984 a
121.09569439296905 313.3977876152378 a
199.3307070478241 295.93930997023773 a
175.61540243501622 268.2674021805318 a
217.6379055868342 331.2346800016729 a
170.83798819537978 300.07143504123195 a
151.45659102404466 237.03624792595127 a
176.39535636234461 274.143798837654 a
152.38873405630076 289.7101828658469 a
185.18950887862772 307.9863518335454 a
197.2473397610565 285.60514911442095 a
192.75195827473974 315.5828551945735 a
164.24031784929545 283.31717855592495 a
179.42817887652734 281.53216330182846 a
201.5568911033668 276.00517779890924 a
236.6040654245753 301.68870353928344 a
225.3242957538554 314.52919502967404 a
184.3384656387642 288.2314731172777 a
240.00645892224054 268.76114277378167 a
186.14416088143332 303.00074033505007 a
201.57768817011862 340.72994059017094 a
194.64821767868528 312.0685069380072 a
191.50134716348262 275.9086253783761 a
216.26902577617375 348.7456720119915 a
199.23623083731357 328.9110059973474 a
143.8142749732984 306.13286251768596 a
197.81703270887334 332.213112813238 a
199.1373727311115 363.23022719136645 a
208.3012710548714 352.6242162903001 a
179.1205129817326 393.7188278252905 a
193.3094471677667 344.3415454347888 a
185.79783111372885 404.83921229114645 a
176.27430263464927 375.7683306488575 a
212.54726859110198 386.60531357514594 a
210.49060214850113 422.30040207144293 a
170.881515994706 379.4324468607108 a
221.01105283901097 405.33830885850784 a
196.65002405583655 401.14712422966744 a
199.5554498240056 421.73658753107117 a
266.260523264507 390.96032246962426 a
252.84234085713868 370.086568026828 a
204.70244124204964 431.61613947251504 a
220.17645244261624 395.67672356634347 a
243.75015814553487 379.19113727064035 a
205.10006410338042 380.9328641412434 a
235.91887002241324 427.92333008018727 a
193.3060627596231 403.33585245264516 a
201.79795457560508 417.97783595394463 a
186.25659761761918 391.8195076733336 a
222.15058339229287 406.31522476269765 a
171.33646599201955 427.4629087962917 a
141.31820687673286 389.5176765849988 a
172.94316207682468 384.73602318432177 a
143.54371716942302 406.06848096658337 a
167.3319915514084 407.206472119536 a
160.85368888493096 356.0701538960622 a
145.35147490253652 469.77196388226525 a
157.20555313332957 334.25082924186404 a
153.7769085813597 373.59752435725113 a
122.74871417049333 433.2209549298014 a
127.8655261651441 378.3087274937007 a
140.97472142328618 352.7232334232182 a
127.0824737243412 422.2351056101195 a
95.72968473906212 374.18217503017087 a
146.6788387941993 348.52896252991343 a
155.18791963221588 350.68025264158814 a
135.30121416589236 332.89217420511784 a
119.88168688116153 401.8731721972807 a
134.46102038578968 410.5837028964694 a
138.8782728635513 380.98028291796004 a
123.95700187608696 378.83839225405745 a
98.46123453439816 382.80388952317867 a
119.1875455984262 398.7911043935252 a
87.84929332072801 403.4264675074478 a
73.01563174449481 401.2877135050341 a
115.10701492207117 434.6992259614291 a
121.14098578030475 386.13786951267 a
122.13444164161469 430.73492445682973 a
139.19395602051807 432.4586914352108 a
144.14351272558363 465.48654453434744 a
181.76603406603084 416.7730606353227 a
189.64670373546272 426.0326417266057 a
241.12689146637837 389.6503719425499 a
224.71832681102518 371.9443910678765 a
161.32146039326085 342.7681976115077 a
179.84912646057484 370.22776532558197 a
221.11897796760547 293.7768188287901 a
175.17367033181247 323.26913992024197 a
181.57782465483228 326.94743333019426 a
197.0791970059099 323.8590490386305 a
164.9120010968948 346.9470025906504 a
175.74353638951152 303.9074182768334 a
201.66796744159302 346.15219417465306 a
192.20488745108173 323.08693804856296 a
189.57083252406701 346.7623605865142 a
238.0184489790867 298.0345347410155 a
171.95414031533548 314.02407180230773 a
172.07588945814405 318.96800953181486 a
273.1052658834081 318.42132406781536 a
216.3793603480397 340.2126065922779 a
242.36738047743995 350.6411903695649 a
230.88367460233871 275.0299869243067 a
246.48484737316406 311.36972124722496 a
259.2551765396705 338.6271111781195 a
237.37379952139833 366.2114597949977 a
250.1551074151425 336.03251327364194 a
256.60697599445047 325.4958870146843 a
229.2600242718833 344.923091578652 a
275.9201508282521 346.2509139414059 a
263.57452910657395 338.4546568007696 a
254.24551332572506 318.91145904448007 a
273.5309154435331 304.0979623883579 a
238.4006910816091 331.90823843896544 a
262.9072140198192 304.401267642452 a
265.6053472273089 321.9039242491646 a
232.19803035349435 307.841166255614 a
253.530858992385 356.60981711992633 a
301.7881634848838 359.3641752478525 a
280.01265241556484 325.61423465802807 a
237.0288898007986 381.6198054100191 a
259.236370436376 308.8155592417776 a
244.60526217323587 282.326896262792 a
246.41685158322582 346.12803633540557 a
231.7373694782472 343.03719463832783 a
208.57487782569538 351.15042998071266 a
180.07769295781296 313.58399356928675 a
319.5856884598593 431.2144400388012 b
205.81764755997145 433.00846365821184 b
281.82552331659144 448.6157945633623 b
255.04656479435243 417.15092862010505 b
248.44060666973542 427.5533803091842 b
251.3046327016328 431.37656682467514 b
223.6654775038472 420.20301005438415 b
210.9623486694888 449.1691856950167 b
215.50765495798956 447.8895178230774 b
265.18354413543966 469.0567871557521 b
248.56607698741183 451.20179806183637 b
283.2217255639903 457.9321400814229 b
284.5455384972862 480.4968253918637 b
289.60544634741035 435.6174640443212 b
245.01690681319934 453.94600791671877 b
290.1522726420997 434.44916036486416 b
307.8146879040281 432.0240539336089 b
295.7921809911712 434.1449858680544 b
317.1755329842184 443.8608273529376 b
246.6123417121048 431.07769540941854 b
262.26296177710765 433.2420612160289 b
297.12632402265945 422.70484635200603 b
264.44373744421495 469.6828177665146 b
272.0359085124857 383.82823373530056 b
230.2493486616219 466.1483755668563 b
248.26986723033485 485.8936017034534 b
297.70957316147445 440.37716420345805 b
312.4385098821869 411.62563917254283 b
289.33529541436565 466.9212701157912 b
273.32628017254876 495.7311388398829 b
39.61083002155168 192.87383074991567 b
49.07569577494193 318.55696695727363 b
78.34483644823159 250.26525243026666 b
11.322864522769041 248.53314591671224 b
18.22555075342554 266.5397783675332 b
74.10188158444242 211.63530130455428 b
27.235354068581728 281.71320095434044 b
30.598970714436707 228.83929140301944 b
49.314192680686986 319.9943576658496 b
69.55424075907345 255.31427742958482 b
17.640588737249125 271.0219609130161 b
42.70273475832403 222.80653459782775 b
101.890614184805 300.4565820930631 b
73.39942028469112 240.4324251430068 b
51.63145597299014 260.74655104103357 b
46.06344154301554 271.0968264576277 b
67.56527689819998 285.72626400643145 b
35.1152680709535 232.20174433342976 b
49.56527352385917 182.6089909634262 b
32.79237591623067 262.9519485215967 b
49.743366601510814 287.91740006334624 b
33.879302357193055 260.61789564141645 b
58.177517105670326 220.24479650388815 b
46.97926021985332 240.39359348565125 b
88.64655152816303 267.5130635598567 b
54.28751356222673 241.01196534788596 b
47.423643398605364 251.14487140276344 b
94.12245200769789 280.1717114078186 b
28.18122249152148 256.10261277590826 b
71.52342880438908 259.32290032905337 b
78.53791155459011 299.01533969385764 b
89.97068936258728 262.0934754775283 b
106.47716771253107 247.23999241837356 b
69.37667358526433 234.70945576009865 b
import numpy as np
import pandas as pd
import matplotlib.pylab as plt
from sklearn.pipeline import make_pipeline
from sklearn.neighbors import KNeighborsClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import recall_score, precision_score, accuracy_score
from sklego.preprocessing import ColumnSelector
from prettytable import PrettyTable
class Experiment():
def __init__(self, estimator, biased_data, actual_data, seed=42):
self.estimator = estimator
self.x_train = biased_data[['x1', 'x2']].values
self.y_train = biased_data['y'].values
self.seed = seed
self.x_actual = actual_data[['x1', 'x2']].values
self.y_actual = actual_data['y'].values
self.round = 0
self.logs = None
self.estimator.fit(self.x_train, self.y_train)
def retrain(self):
learned = self.logs.loc[lambda d: d['pred'] == 1]
X = np.concatenate([self.x_train, learned[['x1', 'x2']].values])
y = np.concatenate([self.y_train, learned['true'].values])
self.estimator.fit(X, y)
def scores(self):
learned = self.logs.loc[lambda d: d['pred'] == 1]
X = np.concatenate([self.x_train, learned[['x1', 'x2']].values])
y = np.concatenate([self.y_train, learned['true'].values])
print(f"measured scores on seen data; acc={accuracy_score(y, self.estimator.predict(X))}")
print(f"measured scores on seen data; precision={precision_score(y, self.estimator.predict(X))}")
print(f"measured scores on seen data; recall={recall_score(y, self.estimator.predict(X))}")
return self.estimator.score(X, y)
def step(self, n_proposal, n_select, method):
self.round += 1
subset_y, self.y_actual = self.y_actual[:n_proposal], self.y_actual[n_proposal:]
subset_x, self.x_actual = self.x_actual[:n_proposal, :], self.x_actual[n_proposal:, :]
chosen_idx, not_chosen_idx, proba = method(self, subset_x, n_select)
df1 = pd.DataFrame({
'x1': subset_x[chosen_idx][:, 0],
'x2': subset_x[chosen_idx][:, 1],
'pred': [1 for i in subset_y[chosen_idx]],
'proba': proba[chosen_idx],
'true': subset_y[chosen_idx],
'round': [self.round for i in subset_y[chosen_idx]],
})
df2 = pd.DataFrame({
'x1': subset_x[not_chosen_idx][:, 0],
'x2': subset_x[not_chosen_idx][:, 1],
'pred': [0 for i in subset_y[not_chosen_idx]],
'proba': proba[not_chosen_idx],
'true': subset_y[not_chosen_idx],
'round': [self.round for i in subset_y[not_chosen_idx]],
})
logz = df1.append(df2)
self.logs = logz if self.logs is None else self.logs.append(logz)
self.retrain()
def greedy(experiment, x, n):
"""
est - sklearn estimator going in
x - data points to predict
n - the number of points to return
"""
preds = experiment.estimator.predict_proba(x)
order = np.lexsort((np.arange(len(preds)), -preds[:, 1]))
return order[:n], order[n:], preds[:, 1]
def sploit(experiment, x, n):
"""
everybody who scores higher than 80% is equal
"""
preds = experiment.estimator.predict_proba(x)
p = np.array(preds[:, 1]) + 0.001
best_candidate = np.argmax(p)
p[best_candidate] = 1
order = np.random.choice(range(len(p)), p=p/p.sum(), replace=False, size=len(p))
return order[:n], order[n:], preds[:, 1]
def plot_experiment(biased_start, other_data, size=10, selection=1, method=greedy):
experiment = Experiment(
estimator=KNeighborsClassifier(n_neighbors=20),
biased_data=biased_start,
actual_data=other_data
)
df = pd.concat([biased_start, other_data])
min_x1, max_x1 = df['x1'].min(), df['x1'].max()
min_x2, max_x2 = df['x2'].min(), df['x2'].max()
while True:
try:
experiment.step(size, selection, method)
except ValueError:
break # this just means we've exhausted the dataset
print(f"method={method.__name__} size={size} selection={selection}")
experiment.scores()
print(f"measured scores on real data; acc={accuracy_score(experiment.logs['true'], experiment.logs['proba'] > 0.5)}")
print(f"measured scores on real data; precision={precision_score(experiment.logs['true'], experiment.logs['proba'] > 0.5)}")
print(f"measured scores on real data; recall={recall_score(experiment.logs['true'], experiment.logs['proba'] > 0.5)}")
plt.figure(figsize=(16, 4))
plt.subplot(141)
plt.scatter(df['x1'], df['x2'], c=df['y'])
plt.title("this is the original dataset")
plt.xlim(min_x1, max_x1)
plt.ylim(min_x2, max_x2);
plt.subplot(142)
plt.scatter(biased_start['x1'], biased_start['x2'], c=biased_start['y'])
plt.title("this is the biased start")
plt.xlim(min_x1, max_x1)
plt.ylim(min_x2, max_x2);
plt.subplot(143)
plt.scatter(experiment.logs['x1'], experiment.logs['x2'], c=experiment.logs['proba']);
plt.xlim(min_x1, max_x1)
plt.ylim(min_x2, max_x2)
plt.title("this is what the model believes");
plt.subplot(144)
plt.scatter(experiment.logs['x1'], experiment.logs['x2'], c=experiment.logs['pred']);
plt.xlim(min_x1, max_x1)
plt.ylim(min_x2, max_x2)
plt.title("these are the selected members");
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment