rubydown 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +7 -0
  2. data/.circleci/config.yml +35 -0
  3. data/.gitignore +3 -0
  4. data/Dockerfile +9 -0
  5. data/Gemfile +8 -0
  6. data/Gemfile.lock +43 -0
  7. data/LICENSE +21 -0
  8. data/README.md +32 -0
  9. data/Rakefile +2 -0
  10. data/_config.yml +1 -0
  11. data/appveyor.yml +25 -0
  12. data/bin/console +14 -0
  13. data/bin/setup +8 -0
  14. data/docs/_config.yml +1 -0
  15. data/docs/index.html +20 -0
  16. data/docs/sidebyside.md +1 -0
  17. data/examples/bio.html +129 -0
  18. data/examples/bio.md +73 -0
  19. data/examples/graph.html +160 -0
  20. data/examples/graph.md +11 -0
  21. data/examples/index.html +217 -0
  22. data/examples/index.md +58 -0
  23. data/examples/numo-gnuplot.ipynb +1515 -0
  24. data/examples/rbplotly-bar.html +146 -0
  25. data/examples/rbplotly-bar.md +54 -0
  26. data/examples/rbplotly-basic.html +134 -0
  27. data/examples/rbplotly-basic.md +43 -0
  28. data/examples/rbplotly-boxplot.html +136 -0
  29. data/examples/rbplotly-boxplot.md +60 -0
  30. data/examples/rbplotly-heatmap.html +95 -0
  31. data/examples/rbplotly-heatmap.md +35 -0
  32. data/examples/rbplotly-hist.html +52 -0
  33. data/examples/rbplotly-hist.md +9 -0
  34. data/examples/rbplotly-line.html +62 -0
  35. data/examples/rbplotly-line.md +19 -0
  36. data/examples/rbplotly-pie.html +100 -0
  37. data/examples/rbplotly-pie.md +40 -0
  38. data/examples/rbplotly-scatter.html +148 -0
  39. data/examples/rbplotly-scatter.md +71 -0
  40. data/examples/rumale-kmeans.html +75 -0
  41. data/examples/rumale-kmeans.md +33 -0
  42. data/examples/rumale.html +967 -0
  43. data/examples/rumale.md +31 -0
  44. data/examples/table.html +57 -0
  45. data/examples/table.md +7 -0
  46. data/exe/rubydown +114 -0
  47. data/lib/rubydown.rb +59 -0
  48. data/lib/rubydown/version.rb +3 -0
  49. data/rubydown.gemspec +47 -0
  50. data/templates/template.html.erb +26 -0
  51. metadata +207 -0
@@ -0,0 +1,148 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta name="viewport" content="width=device-width, initial-scale=1">
5
+ <link href='https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/2.10.0/github-markdown.min.css' rel='stylesheet' type='text/css' />
6
+ <style>
7
+ article.markdown-body {
8
+ box-sizing: border-box;
9
+ min-width: 200px;
10
+ max-width: 980px;
11
+ margin: 0 auto;
12
+ padding: 45px;
13
+ }
14
+
15
+ span.line-numbers {
16
+ display: none;
17
+ }
18
+ </style>
19
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"></script>
20
+ </head>
21
+ <body>
22
+ <article class='markdown-body'>
23
+ <h1 id="rbplotly-scatter-plot-usage">rbplotly scatter plot usage</h1>
24
+
25
+ <h2 id="simple-scatter-plot">Simple scatter Plot</h2>
26
+
27
+ <pre><code class="language-ruby">require 'rbplotly'
28
+
29
+ n = 100
30
+ x = n.times.map { rand(-2.0..2.0) }
31
+ y = n.times.map { rand(-1.0..1.0) }
32
+ trace = { x: x, y: y, mode: :markers }
33
+
34
+ plot = Plotly::Plot.new(data: [trace])
35
+ plot.layout.title = 'Simple Scatter Plot'
36
+ plot
37
+ </code></pre>
38
+ <script>
39
+ requirejs.config({paths: { 'plotly': ['https://cdn.plot.ly/plotly-latest.min'] }})
40
+ </script>
41
+ <div id="186164ec-73b0-44a4-af20-0f20e6ab3c2d" style="height: 100%; width: 100%;"></div>
42
+ <script>
43
+ require(['plotly'], function(Plotly) {
44
+ Plotly.newPlot(
45
+ '186164ec-73b0-44a4-af20-0f20e6ab3c2d',
46
+ [{"x":[-0.08691110366025834,-1.7144094256240652,1.0632906793582606,0.16221056866585126,0.007123192994348049,0.7999522587617589,1.350741609807554,0.0788297611127522,1.685608928986102,0.07731655359742673,-0.11916502333781187,-1.1458894074263775,-0.23711243175610264,-0.8599538395946267,0.5901076768209479,1.5934857799039532,-0.6760497358813478,1.2854322104161082,-1.7798524151160287,-1.9592348754041904,-0.7320440651728588,-0.5511841266604693,1.468292849916025,-0.9186426296284576,-1.0736602109724989,-1.9649108240485962,-0.7568621810091543,-0.8600548667459917,1.887836439680687,-0.717175463732759,-1.6382880907543451,0.23367701814046837,0.6100156595981554,1.4346800503529176,-0.404356784284174,1.9892164487473365,-0.787415500244224,1.5028467231796179,0.20908290610371116,-1.0809612192290565,1.136358002458317,-0.4766937929194981,1.491184292770284,-0.1981784692753017,1.6854659241664804,-1.8518720774429878,-1.5664049848077117,0.2457616046127873,-0.6650608561343634,0.3482623003126575,0.43425661494097545,-1.404634957567818,0.5094808985656858,-1.4906888990096347,-0.00608990602287518,-1.5082411107153715,-0.8085584774506382,1.2846288640389636,1.4360484000617104,1.3866103406942192,0.33234411493579685,1.2550323319990793,1.5984545854241534,1.1643387330422628,-1.4814334325674472,-0.15154949060579526,1.5143191883687073,-1.756528116406629,-1.114928487333354,1.934879381532825,-0.3593183298726461,-0.39664206958404646,-0.7182633379896046,1.7305152968705024,0.9036350343169617,0.9532758340956318,0.1636085304817514,-0.3635918361929913,-0.09488789896527594,-1.34961843992305,0.29398753706048764,0.3416984909185552,-1.786707332063509,0.054878273719174864,-1.0991525523644965,0.47691867169346214,-1.0627872387397108,0.3333237086094525,0.9752271013605442,-1.8946479590046983,1.059180312564055,0.7215130883346714,1.0953112583120195,-1.9441843964195753,1.420164483122091,-1.889975804590999,1.5738714024404237,-1.0424819700539776,-1.408701924899339,0.29103563218698447],"y":[0.1664741793286626,-0.5581179299002736,0.7315607435452711,0.8719045972188666,0.33072943428189405,-0.2713704391194711,0.19115848304907268,0.9535574268867013,0.4105670084841011,-0.6682858740647484,-0.9704313417251866,0.9134949629464884,0.41902226307492185,0.6927276285266217,0.5596325262286348,-0.9012228076276403,-0.6566642070732347,-0.38883352643947,0.19664633638250817,-0.13187694522442617,0.0701835104732067,0.5196408881168648,0.9358416240416358,-0.9554808697562478,-0.3049189691952394,-0.7202524986309771,-0.7572423042313579,-0.29753090409339444,0.855483883779415,0.7292676023742852,-0.4950070390377903,-0.0784854043365999,-0.18547003335847734,0.5785682579002422,0.2336901903896016,0.31585607961410056,0.24898833562719402,0.7548713278692303,0.8458728896858161,0.0007354019446550453,0.8664332187827077,-0.741365342389221,-0.9651699301191079,0.9298740777849381,0.9459071140271849,0.965811533377638,-0.02466867393028105,-0.3430658935553208,-0.5757214181108963,-0.6813546299398268,-0.411057550732826,-0.7683237557222131,-0.7212024965852997,-0.13718909935001977,0.8929987486273239,0.6223600708765484,0.9233732612436654,0.2476692772035367,-0.5885678785359458,-0.7585359916762242,-0.14156865849667266,-0.32078127314378446,-0.33462296813231696,0.14183451578428463,0.8723210805182289,-0.506219976868757,0.4196525764410439,-0.22885092202102908,-0.44139745553893306,0.6482844732431525,-0.2498596098432624,0.14902566091426794,0.21262380297552408,-0.4531046284832314,-0.5414849209241812,-0.412801265374211,-0.4246424672731046,-0.9989857585711879,-0.3873873030474999,-0.5747973021274009,-0.40742504262097357,0.15186273442671694,-0.7714822279422422,0.5519125331495491,0.4690532335609434,0.3200894404530039,0.8908643651942261,0.6457359511497847,-0.6967812400006581,0.4520443734987527,-0.9236926078358458,0.30237722759822994,-0.3832517438053811,0.08609707025039404,-0.8111163664466663,-0.5789741581344072,-0.08837490224579025,0.8608106702020608,0.38612762449407234,0.3543989828626082],"mode":"markers"}],
47
+ {"title":"Simple Scatter Plot"},
48
+ {"linkText":"Export to plot.ly","showLink":true}
49
+ )
50
+
51
+ window.addEventListener('resize', function() {
52
+ Plotly.Plots.resize(document.getElementById('186164ec-73b0-44a4-af20-0f20e6ab3c2d'))
53
+ })
54
+ })
55
+ </script>
56
+
57
+ <h2 id="line-and-scatter-plots">Line and scatter plots</h2>
58
+
59
+ <pre><code class="language-ruby">n = 100
60
+
61
+ x = n.times.map { |i| i.to_f / (n - 1) }
62
+ y0 = n.times.map { rand(-2.0..2.0) + 5 }
63
+ y1 = n.times.map { rand(-2.0..2.0) }
64
+ y2 = n.times.map { rand(-2.0..2.0) - 5 }
65
+
66
+ trace0 = { x: x, y: y0, type: :scatter, mode: :markers }
67
+ trace1 = { x: x, y: y1, type: :scatter, mode: :'markers+lines' }
68
+ trace2 = { x: x, y: y2, type: :scatter, mode: :lines }
69
+
70
+ plot = Plotly::Plot.new(data: [trace0, trace1, trace2])
71
+ plot.layout.title = 'Line and Scatter Plots'
72
+ plot
73
+ </code></pre>
74
+ <script>
75
+ requirejs.config({paths: { 'plotly': ['https://cdn.plot.ly/plotly-latest.min'] }})
76
+ </script>
77
+ <div id="d2efedfe-4075-4626-98d4-5c3a08a95ab1" style="height: 100%; width: 100%;"></div>
78
+ <script>
79
+ require(['plotly'], function(Plotly) {
80
+ Plotly.newPlot(
81
+ 'd2efedfe-4075-4626-98d4-5c3a08a95ab1',
82
+ [{"x":[0.0,0.010101010101010102,0.020202020202020204,0.030303030303030304,0.04040404040404041,0.050505050505050504,0.06060606060606061,0.0707070707070707,0.08080808080808081,0.09090909090909091,0.10101010101010101,0.1111111111111111,0.12121212121212122,0.13131313131313133,0.1414141414141414,0.15151515151515152,0.16161616161616163,0.1717171717171717,0.18181818181818182,0.1919191919191919,0.20202020202020202,0.21212121212121213,0.2222222222222222,0.23232323232323232,0.24242424242424243,0.25252525252525254,0.26262626262626265,0.2727272727272727,0.2828282828282828,0.29292929292929293,0.30303030303030304,0.31313131313131315,0.32323232323232326,0.3333333333333333,0.3434343434343434,0.35353535353535354,0.36363636363636365,0.37373737373737376,0.3838383838383838,0.3939393939393939,0.40404040404040403,0.41414141414141414,0.42424242424242425,0.43434343434343436,0.4444444444444444,0.45454545454545453,0.46464646464646464,0.47474747474747475,0.48484848484848486,0.494949494949495,0.5050505050505051,0.5151515151515151,0.5252525252525253,0.5353535353535354,0.5454545454545454,0.5555555555555556,0.5656565656565656,0.5757575757575758,0.5858585858585859,0.5959595959595959,0.6060606060606061,0.6161616161616161,0.6262626262626263,0.6363636363636364,0.6464646464646465,0.6565656565656566,0.6666666666666666,0.6767676767676768,0.6868686868686869,0.696969696969697,0.7070707070707071,0.7171717171717171,0.7272727272727273,0.7373737373737373,0.7474747474747475,0.7575757575757576,0.7676767676767676,0.7777777777777778,0.7878787878787878,0.797979797979798,0.8080808080808081,0.8181818181818182,0.8282828282828283,0.8383838383838383,0.8484848484848485,0.8585858585858586,0.8686868686868687,0.8787878787878788,0.8888888888888888,0.898989898989899,0.9090909090909091,0.9191919191919192,0.9292929292929293,0.9393939393939394,0.9494949494949495,0.9595959595959596,0.9696969696969697,0.9797979797979798,0.98989898989899,1.0],"y":[5.926231907923529,5.801779109000774,4.149871191011219,4.628184073360655,6.075754599719305,3.625671491013192,5.6210730612807085,5.516658155670962,4.312187100377516,5.153368637089546,6.182821972050515,6.3260336764442915,3.2536425219097653,4.049429254787269,4.932743849137322,5.213669056055929,5.283970824841523,6.651964712330782,4.943576872450738,5.201853480186383,4.510066905300446,3.618963051306159,5.7810881334982405,6.597438634262532,4.079924390003011,5.592941000943521,5.45800621575545,6.3336032775431645,3.718322756725717,6.251558143025692,6.180615663463181,5.239654582796435,4.885256856474701,5.272369571083843,4.727557744039849,5.337556686607703,4.2467019291618,6.801014452934208,4.037533408386199,6.084454822311113,6.891169049943443,3.79481965986934,4.5550614777822585,3.81040809332247,6.283801996940872,5.289043687348254,6.940603598117591,4.870791542141344,5.990222710084378,6.763991930315067,3.57855933072782,6.22653672858794,5.846383733329391,4.522354682590884,3.613488794245094,3.0771814221676905,6.231996480205089,6.367726377551234,5.5923400295028,4.762653048434421,4.071446334218841,5.252525450606216,3.2007235432410317,5.639782033275692,4.467239008325199,6.063015645442067,3.9564332962345365,6.264416847905052,5.556352136940971,3.711407520056241,4.195394032036305,3.9866872462689598,5.1214198694865996,4.679707458259655,3.7370245098703956,6.139233069442695,3.0729542067353757,4.151477550940966,6.675202761704176,5.106314618685504,4.896096001117785,4.427885318943945,3.644239347854715,4.2232959652800455,6.1203995182182265,6.69558753944447,6.1342721868835435,4.5746812744588885,6.150955524987906,5.974100095391496,4.321873970115856,6.680690108950074,3.8800665401323986,6.8635352999872605,5.14727693610002,3.624164187404548,3.617293982727844,5.621129082669454,5.801698035684423,3.22314148257299],"mode":"markers","type":"scatter"},{"x":[0.0,0.010101010101010102,0.020202020202020204,0.030303030303030304,0.04040404040404041,0.050505050505050504,0.06060606060606061,0.0707070707070707,0.08080808080808081,0.09090909090909091,0.10101010101010101,0.1111111111111111,0.12121212121212122,0.13131313131313133,0.1414141414141414,0.15151515151515152,0.16161616161616163,0.1717171717171717,0.18181818181818182,0.1919191919191919,0.20202020202020202,0.21212121212121213,0.2222222222222222,0.23232323232323232,0.24242424242424243,0.25252525252525254,0.26262626262626265,0.2727272727272727,0.2828282828282828,0.29292929292929293,0.30303030303030304,0.31313131313131315,0.32323232323232326,0.3333333333333333,0.3434343434343434,0.35353535353535354,0.36363636363636365,0.37373737373737376,0.3838383838383838,0.3939393939393939,0.40404040404040403,0.41414141414141414,0.42424242424242425,0.43434343434343436,0.4444444444444444,0.45454545454545453,0.46464646464646464,0.47474747474747475,0.48484848484848486,0.494949494949495,0.5050505050505051,0.5151515151515151,0.5252525252525253,0.5353535353535354,0.5454545454545454,0.5555555555555556,0.5656565656565656,0.5757575757575758,0.5858585858585859,0.5959595959595959,0.6060606060606061,0.6161616161616161,0.6262626262626263,0.6363636363636364,0.6464646464646465,0.6565656565656566,0.6666666666666666,0.6767676767676768,0.6868686868686869,0.696969696969697,0.7070707070707071,0.7171717171717171,0.7272727272727273,0.7373737373737373,0.7474747474747475,0.7575757575757576,0.7676767676767676,0.7777777777777778,0.7878787878787878,0.797979797979798,0.8080808080808081,0.8181818181818182,0.8282828282828283,0.8383838383838383,0.8484848484848485,0.8585858585858586,0.8686868686868687,0.8787878787878788,0.8888888888888888,0.898989898989899,0.9090909090909091,0.9191919191919192,0.9292929292929293,0.9393939393939394,0.9494949494949495,0.9595959595959596,0.9696969696969697,0.9797979797979798,0.98989898989899,1.0],"y":[1.7891549261357005,-0.017478013818891913,-0.5880597315137548,0.031634424754040325,-0.3101183594402812,1.6925507855240216,0.6571170710532392,-0.6668268061849885,-0.6001477837573059,-0.7752375866427967,1.614721545794772,1.2353472174032496,-0.3585751360135001,1.1201023202200617,0.2844454282718458,1.7680035561550502,1.0727807833854817,1.3327149771012325,-1.6938378419195175,-0.5322221535157028,1.9260664057685055,-0.9242969448977258,-0.16133683173120295,1.8987345491508747,-1.5668537897296897,-0.22263466447695368,0.9649393300599032,1.6699800197455246,-0.8113785875054851,0.7883403403779976,1.1066349482222426,0.28115616438324365,-1.5914356570078247,-0.7459665069718273,-0.9234330256046852,1.7921113499699977,-0.9583927067048696,-1.0012659750493142,1.7675877678609764,0.9219150245800534,-1.78198011054478,-0.5096248774592205,1.8738703529424288,-1.880047488172877,-0.744192580898249,0.4582497888858512,0.0019646193426376968,-0.5672027834109397,1.9172919286464936,-0.7236616496762998,0.015975669416520955,1.0616974926454792,-1.105810503790965,0.9209359169967914,-1.7806804385790609,0.34072971025286547,-0.18437800041738628,1.074647039170325,-1.5398521695775353,1.6793248240941865,0.18207079969367923,-1.6655887934196492,-0.8927204457071283,0.6853195362933651,-0.08200485927692913,-0.7911089636616153,1.8289586891561909,-0.7361061927442041,-1.7500549222907638,0.9158400701271554,-0.4748640369396404,-0.8765154703419542,-1.7658988768366282,-0.4346667958175279,-1.818702316822952,-0.5881010625936334,0.5343533927815591,-1.149547324216897,-1.79472791087582,0.4210552366052456,-1.159900615082213,0.9457370240162288,-1.6755086198932836,1.944293028722397,-1.6479614148044037,1.2708772220421047,-1.108191414607976,1.5248142624186518,-1.3191346488383129,-1.5038951867051011,-0.9360117740000726,0.8893993872009043,-1.5727757587558822,-0.6267040775676751,1.6152254762237703,1.7883154017780716,0.7616981339260516,0.8996229659476231,-1.9983720288135451,1.6016488919037846],"mode":"markers+lines","type":"scatter"},{"x":[0.0,0.010101010101010102,0.020202020202020204,0.030303030303030304,0.04040404040404041,0.050505050505050504,0.06060606060606061,0.0707070707070707,0.08080808080808081,0.09090909090909091,0.10101010101010101,0.1111111111111111,0.12121212121212122,0.13131313131313133,0.1414141414141414,0.15151515151515152,0.16161616161616163,0.1717171717171717,0.18181818181818182,0.1919191919191919,0.20202020202020202,0.21212121212121213,0.2222222222222222,0.23232323232323232,0.24242424242424243,0.25252525252525254,0.26262626262626265,0.2727272727272727,0.2828282828282828,0.29292929292929293,0.30303030303030304,0.31313131313131315,0.32323232323232326,0.3333333333333333,0.3434343434343434,0.35353535353535354,0.36363636363636365,0.37373737373737376,0.3838383838383838,0.3939393939393939,0.40404040404040403,0.41414141414141414,0.42424242424242425,0.43434343434343436,0.4444444444444444,0.45454545454545453,0.46464646464646464,0.47474747474747475,0.48484848484848486,0.494949494949495,0.5050505050505051,0.5151515151515151,0.5252525252525253,0.5353535353535354,0.5454545454545454,0.5555555555555556,0.5656565656565656,0.5757575757575758,0.5858585858585859,0.5959595959595959,0.6060606060606061,0.6161616161616161,0.6262626262626263,0.6363636363636364,0.6464646464646465,0.6565656565656566,0.6666666666666666,0.6767676767676768,0.6868686868686869,0.696969696969697,0.7070707070707071,0.7171717171717171,0.7272727272727273,0.7373737373737373,0.7474747474747475,0.7575757575757576,0.7676767676767676,0.7777777777777778,0.7878787878787878,0.797979797979798,0.8080808080808081,0.8181818181818182,0.8282828282828283,0.8383838383838383,0.8484848484848485,0.8585858585858586,0.8686868686868687,0.8787878787878788,0.8888888888888888,0.898989898989899,0.9090909090909091,0.9191919191919192,0.9292929292929293,0.9393939393939394,0.9494949494949495,0.9595959595959596,0.9696969696969697,0.9797979797979798,0.98989898989899,1.0],"y":[-5.277586596215814,-4.554020949564798,-3.777650500969923,-5.410580067904977,-6.724285681642441,-6.964618487327916,-4.316956264792224,-6.085519601679411,-5.974244682654534,-6.218197835742179,-3.5415193151247752,-6.0436087517514805,-6.294726480256136,-3.1814970890001604,-6.298907843626239,-4.1648932342799005,-5.164943405749318,-5.530566490320392,-5.105908252931054,-6.338142457468413,-3.065705881429097,-6.2979127629119915,-5.627718696636249,-4.584443647009424,-5.428596058926112,-5.597239415414011,-6.121485932772867,-5.457953833949661,-3.481996862855018,-4.676455722775767,-4.189521272364614,-5.224675567010729,-6.894390850945051,-3.071703604162909,-5.021608048549719,-3.5658990231813688,-5.215735770570097,-6.593674015923571,-6.12954190723074,-5.08534770257589,-5.107382831631272,-6.006789402732055,-3.4621908666334273,-5.73353725271955,-3.415148737048371,-6.957490080469283,-3.142526238796759,-5.536424185808782,-4.875407879021632,-6.345565478119401,-4.886491553096353,-3.942208687482546,-3.503947215263808,-3.572596458559939,-3.5665325455364414,-4.7877563029230465,-5.631354113023998,-4.053810488815406,-5.301112811686044,-3.860251913525703,-3.5828041437321465,-4.1059853710742775,-5.998146206442136,-5.00650781705959,-3.213018515004321,-5.137434754587568,-5.360889390437843,-6.885622901352737,-5.1791780560074905,-4.043440006665271,-4.371041839839069,-4.987603987496003,-5.611442914606437,-5.702742967222656,-4.568549766495439,-6.192209009543713,-6.123646527645609,-5.155536840523606,-6.937042041654484,-5.811754604307585,-5.301394487129786,-5.9224124418415744,-6.457266774312215,-3.3439221036128988,-3.043621800121099,-4.195752929123311,-6.534280252700157,-4.797774383714593,-5.720803353773279,-6.5388087345169925,-4.905330354285877,-3.272197180078566,-6.8131357938873185,-3.0775833553862,-3.044588197818219,-5.8757821185987815,-3.6218117141176958,-5.049968897033375,-6.238616285352595,-3.264027041327675],"mode":"lines","type":"scatter"}],
83
+ {"title":"Line and Scatter Plots"},
84
+ {"linkText":"Export to plot.ly","showLink":true}
85
+ )
86
+
87
+ window.addEventListener('resize', function() {
88
+ Plotly.Plots.resize(document.getElementById('d2efedfe-4075-4626-98d4-5c3a08a95ab1'))
89
+ })
90
+ })
91
+ </script>
92
+
93
+ <h2 id="style-scatter-plots">Style scatter plots</h2>
94
+
95
+ <pre><code class="language-ruby">n = 100
96
+ trace0 = {
97
+ x: n.times.map { rand(-2.0..2.0) },
98
+ y: n.times.map { rand(-1.0..1.0) },
99
+ name: 'Red',
100
+ mode: :markers,
101
+ marker: {
102
+ size: 15,
103
+ color: 'rgba(200, 0, 0, .5)',
104
+ line: { width: 2, color: 'rgb(0, 0, 0, .5)' }
105
+ }
106
+ }
107
+ trace1 = {
108
+ x: n.times.map { rand(-2.0..2.0) },
109
+ y: n.times.map { rand(-1.0..1.0) },
110
+ name: 'Blue',
111
+ mode: :markers,
112
+ marker: {
113
+ size: 10,
114
+ color: 'rgba(0, 0, 200, .5)',
115
+ line: { width: 1, color: 'rgb(0, 0, 0, .5)' }
116
+ }
117
+ }
118
+
119
+ layout = {
120
+ title: 'Styled Scatter',
121
+ xaxis: { zeroline: false },
122
+ yaxis: { zeroline: false }
123
+ }
124
+
125
+ plot = Plotly::Plot.new(data: [trace0, trace1], layout: layout)
126
+ </code></pre>
127
+ <script>
128
+ requirejs.config({paths: { 'plotly': ['https://cdn.plot.ly/plotly-latest.min'] }})
129
+ </script>
130
+ <div id="6cc3e8b0-03ee-400b-8b0d-df3ed3e9d5be" style="height: 100%; width: 100%;"></div>
131
+ <script>
132
+ require(['plotly'], function(Plotly) {
133
+ Plotly.newPlot(
134
+ '6cc3e8b0-03ee-400b-8b0d-df3ed3e9d5be',
135
+ [{"x":[-1.0267326101216927,-0.16236701415670574,0.6803321760249545,1.0496175542216926,-0.3449511756726995,-0.7070661307100021,-1.8584477109146667,-0.5112377833304178,0.4221575978073906,0.5098322246674156,1.4632747745992645,-1.8709029659974714,-1.97652540518436,-0.4580013943407004,0.3662264069851884,1.2689299628617992,-0.8787633129644563,-1.3019252657933231,-0.7567514377670976,0.2596114328332666,1.671556215114753,-1.568201830385214,0.464056436306286,-1.4198035116983618,0.45639806587381493,-1.5486401136993422,-1.5835545338725336,-0.9210274400905178,0.573654978449162,1.7398736602113734,-1.726661122688415,0.8432848799020167,-1.872471371055635,0.9279847946016035,-1.910026468731162,1.9647683910119844,0.2528353017559444,1.6016185653052335,0.19455327943026646,1.3805237702846078,0.7014701090159661,0.2999075311395871,-0.6894182636859219,1.3197288966948695,-0.2864883620842087,1.3161540735562642,0.6404209299881853,-0.9196380279413829,-1.3638020067493999,1.801857772843264,0.9337338278065044,1.4616586842181731,-0.36093965905514525,0.4693543044439017,-0.1834919419051837,-1.4028944117305593,-1.6364893077138056,1.2463293748114754,1.78340062726169,1.0113882781161285,-0.1520650244973809,-1.9021453906749426,-1.654710443118681,-0.8705206248066957,-0.46641281087478736,0.12803991084923316,1.775497546043062,-1.1878539443250071,1.0635062305020186,-1.5188098116056628,-1.1955458947331592,-1.531771967309567,1.7712213492763618,0.9858024340838476,1.1872261742064931,1.0773273937789964,-0.4521651982462358,-1.5537492355238456,-1.6812574105361966,0.7331933225473657,0.9709088472669718,-0.5025695840469799,1.562046618942543,-1.2740577329835454,1.3012983942782554,-0.3360394260050694,1.0147578256602041,1.6961175237604231,0.4691207624707645,-0.2533771331209316,-1.2032382229315095,0.09681083079527797,0.9095681832797133,-1.0821242273675282,-1.7190417458871812,-0.7730313930726704,0.2725283480418921,1.9098689733166432,1.341411673665331,-1.0155771900707644],"y":[0.3975297503902526,-0.9754758128888361,-0.8439583191553743,-0.9920930940934107,0.3840029381866432,-0.7736785846136682,-0.2814807666493431,0.5903599485928397,0.8549917235684383,0.18942217090758406,-0.13666055940001076,0.05698610522768077,-0.735372987701723,0.05163952582261189,0.2787294311142148,0.6197385965765596,-0.9493399023616296,-0.575463497573869,-0.6033283983169107,0.6844835597225578,0.9701883658481916,0.510750287878597,0.36040776762011606,0.17216218764140656,0.7551315977578539,-0.08830222087887551,-0.3641158053418152,0.5293662165441917,-0.07493290037530476,-0.37703766441662534,0.4757093624439426,-0.7482805204355287,0.17490335886870634,0.3222905163452423,-0.7459977165286156,0.4515615270322284,0.11619873600717812,-0.3656128346622871,-0.7003259571435687,-0.09879721595863389,-4.397713761816746e-06,-0.22245613997040148,-0.09119439432764964,0.07543636500241813,0.1265730082435057,0.974579042344002,0.286304454663185,0.26874395579169574,-0.9924287144755213,-0.7452077093453398,-0.3057108945672753,-0.5209835972761607,-0.42962887289542806,0.4501792798220541,-0.3441691674851495,-0.28179600199269506,0.20323224478002455,0.9830310079636944,-0.1021221791598903,0.443232422559408,0.5982686396393291,-0.2600468983752906,0.17607862210928849,-0.5007130824238757,0.6868881170324617,-0.007793244938131716,0.16446945764750254,0.26176265361830287,0.4607500588936373,0.760832527142288,-0.7905249475081184,-0.08879912011652324,0.5017612813343275,-0.5838291918128014,0.3190640255577235,0.5343327969821903,0.2431589821832254,-0.20046020152831678,0.19252769432637207,-0.7706644048778806,-0.021682886860177275,0.9950993727295254,-0.5170429349687309,0.4166043361102949,-0.5957510084968733,-0.9884641777065595,0.03661577472572697,-0.6806567870023643,-0.5064046704440772,-0.006998274215364031,-0.2735397423797721,0.5381147607559391,-0.7813009761336456,0.25789365321913116,-0.5304109412502322,-0.1475706344551988,0.7230745920816608,-0.4793569809620599,0.14308394443096106,0.9121787658241911],"mode":"markers","name":"Red","marker":{"size":15,"color":"rgba(200, 0, 0, .5)","line":{"width":2,"color":"rgb(0, 0, 0, .5)"}}},{"x":[1.4260627222685471,1.3474550808391448,1.4503940771167967,-1.2382736727112844,-0.6972418897064281,1.2950160243416642,-1.7733033727013696,-1.36819958336259,0.8789515491110245,0.2679648931371861,0.0024803447176999782,-0.8377252770851906,0.46380730466008524,-1.1408411547410382,-0.6740280761561293,-1.2552662813567128,-0.9324973550735227,1.1319389525383663,-1.1656131209900238,1.9847799987551427,-1.5826074366838174,-0.8736949417190303,1.116779920521354,-0.1462229023839301,-0.4061910478140791,-0.21554772907542397,1.7966927397085777,-1.1613727861278065,-0.8566923111008795,-1.271147584360897,1.9363961175335658,0.5533376141854514,0.638640359292471,0.18256511259572417,0.931399795237351,0.565296400709042,-0.6769636350316666,1.3974227694571417,-1.1747704164693125,1.370360240742087,0.03456326564775969,-0.8317037061328971,-0.02582066521686066,0.8558525911797017,1.3689427140375692,-0.28054268038161645,0.4359151441716511,1.0371425340203375,-0.21836859804326503,1.5644945132778973,1.54163538575584,1.7803032471586238,-0.9948338781075439,0.6410874640344941,0.5896375475416122,-1.2566152049965855,-0.5633633746457707,-1.9149715701537375,-1.7664106934804304,1.9814285573593207,0.6141130525303926,-1.3448147615937582,1.2086518720871808,-1.8798015456032098,-1.7769483340874754,1.8301887108530805,0.30217356707046417,-0.1307327246512262,0.8917721379192098,-0.1981837865017857,0.910672741273467,1.7178739722195373,-0.8110672496540201,-1.720363205824205,0.5978779811225348,-1.9986842851518931,0.25810752044597685,0.18856543953506,0.16263349892280266,-0.7701495634265565,1.0478536839103971,0.5853079770153302,0.707295201656513,-0.009472423408171338,-0.6565808352403888,-1.036010119668806,-1.8752109540841007,-1.04247469748691,-1.1106892105756585,0.6855227694471702,0.025955455475453526,-0.5458816765604353,1.5086942187056502,-0.5911091994955142,-0.4785980340839995,1.2325235630212656,0.6786237948945315,-1.8943863188059602,0.03734565349581365,0.5654436543762063],"y":[0.045392756378456856,0.12075866789661349,0.8822900550043384,0.31637662404332345,-0.9061191988851585,0.12481642057001929,0.8618049994424626,-0.43488105548844325,0.6084118171724613,0.985845319628964,-0.9939849286901383,-0.23462872696957993,-0.2635213243171728,-0.07272694010200542,0.3823070957399519,-0.6144314330820337,-0.9363719777382531,0.0535135611356361,-0.16539579508385516,0.1917831860656547,-0.819407319233624,-0.13387840067193757,0.8868087852408253,0.4677661724849691,0.45319595457468465,0.2576051938919879,0.11191306178517824,-0.6228488336860731,-0.6007078629912443,0.5808247992361528,0.33496276370893385,-0.2388360962556595,0.9782182000166697,0.04633436924789569,0.2620479061168055,-0.7312843978278436,-0.5313281374335312,0.4626471859564947,0.6949965910733622,-0.7645196704174249,-0.9965879191823948,-0.12572844243119774,0.1769286739918836,0.7774917827334076,-0.7437145266723422,-0.360351929985149,-0.4937256554876843,0.8595578466167382,0.23843874169185608,-0.8685745890850973,-0.3356402923146067,-0.9533304305042192,-0.026973709769751775,-0.4317867124266983,0.9736001535902628,-0.7740593268624665,0.21384406691408375,-0.6082711238830973,0.4690019795667817,0.7234900507303264,0.9976628624618737,0.4297769777752083,0.15997886116599735,0.4388695750264553,-0.9880648570564505,0.3789479833249658,-0.4658127670895291,0.9135456545719975,-0.7116660051717372,-0.2000408909378879,-0.013693989297935305,-0.8230937419937625,0.5253860430841835,-0.2094361285007902,0.1161216059638508,-0.46952439255834366,-0.34155248672547844,-0.8217115131361534,0.3117816898820225,0.963092465563226,0.8831655916472771,0.9381893161773469,-0.8190120020680416,0.24904526198393206,-0.4066356399624449,-0.8967643640940743,-0.5997469442727359,-0.350525174311086,0.3920890920146203,0.12020003826313719,0.5424824020870471,0.5290338821394891,-0.08937689445413666,-0.5433971566405142,-0.9776569606865946,0.6972058653934641,-0.28898406241906116,-0.03781590675433444,0.4800804845286204,0.7073198831269378],"mode":"markers","name":"Blue","marker":{"size":10,"color":"rgba(0, 0, 200, .5)","line":{"width":1,"color":"rgb(0, 0, 0, .5)"}}}],
136
+ {"title":"Styled Scatter","xaxis":{"zeroline":false},"yaxis":{"zeroline":false}},
137
+ {"linkText":"Export to plot.ly","showLink":true}
138
+ )
139
+
140
+ window.addEventListener('resize', function() {
141
+ Plotly.Plots.resize(document.getElementById('6cc3e8b0-03ee-400b-8b0d-df3ed3e9d5be'))
142
+ })
143
+ })
144
+ </script>
145
+
146
+ </article>
147
+ </body>
148
+ </html>
@@ -0,0 +1,71 @@
1
+ # rbplotly scatter plot usage
2
+
3
+ ## Simple scatter Plot
4
+
5
+ ~~~ruby
6
+ require 'rbplotly'
7
+
8
+ n = 100
9
+ x = n.times.map { rand(-2.0..2.0) }
10
+ y = n.times.map { rand(-1.0..1.0) }
11
+ trace = { x: x, y: y, mode: :markers }
12
+
13
+ plot = Plotly::Plot.new(data: [trace])
14
+ plot.layout.title = 'Simple Scatter Plot'
15
+ plot
16
+ ~~~
17
+
18
+ ## Line and scatter plots
19
+
20
+ ~~~ruby
21
+ n = 100
22
+
23
+ x = n.times.map { |i| i.to_f / (n - 1) }
24
+ y0 = n.times.map { rand(-2.0..2.0) + 5 }
25
+ y1 = n.times.map { rand(-2.0..2.0) }
26
+ y2 = n.times.map { rand(-2.0..2.0) - 5 }
27
+
28
+ trace0 = { x: x, y: y0, type: :scatter, mode: :markers }
29
+ trace1 = { x: x, y: y1, type: :scatter, mode: :'markers+lines' }
30
+ trace2 = { x: x, y: y2, type: :scatter, mode: :lines }
31
+
32
+ plot = Plotly::Plot.new(data: [trace0, trace1, trace2])
33
+ plot.layout.title = 'Line and Scatter Plots'
34
+ plot
35
+ ~~~
36
+
37
+ ## Style scatter plots
38
+
39
+ ~~~ruby
40
+ n = 100
41
+ trace0 = {
42
+ x: n.times.map { rand(-2.0..2.0) },
43
+ y: n.times.map { rand(-1.0..1.0) },
44
+ name: 'Red',
45
+ mode: :markers,
46
+ marker: {
47
+ size: 15,
48
+ color: 'rgba(200, 0, 0, .5)',
49
+ line: { width: 2, color: 'rgb(0, 0, 0, .5)' }
50
+ }
51
+ }
52
+ trace1 = {
53
+ x: n.times.map { rand(-2.0..2.0) },
54
+ y: n.times.map { rand(-1.0..1.0) },
55
+ name: 'Blue',
56
+ mode: :markers,
57
+ marker: {
58
+ size: 10,
59
+ color: 'rgba(0, 0, 200, .5)',
60
+ line: { width: 1, color: 'rgb(0, 0, 0, .5)' }
61
+ }
62
+ }
63
+
64
+ layout = {
65
+ title: 'Styled Scatter',
66
+ xaxis: { zeroline: false },
67
+ yaxis: { zeroline: false }
68
+ }
69
+
70
+ plot = Plotly::Plot.new(data: [trace0, trace1], layout: layout)
71
+ ~~~
@@ -0,0 +1,75 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta name="viewport" content="width=device-width, initial-scale=1">
5
+ <link href='https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/2.10.0/github-markdown.min.css' rel='stylesheet' type='text/css' />
6
+ <style>
7
+ article.markdown-body {
8
+ box-sizing: border-box;
9
+ min-width: 200px;
10
+ max-width: 980px;
11
+ margin: 0 auto;
12
+ padding: 45px;
13
+ }
14
+
15
+ span.line-numbers {
16
+ display: none;
17
+ }
18
+ </style>
19
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"></script>
20
+ </head>
21
+ <body>
22
+ <article class='markdown-body'>
23
+
24
+ <h1 id="k-means-clustering-with-rumalehttpsgithubcomyoshokurumale">k-means clustering with <a href="https://github.com/yoshoku/rumale">rumale</a></h1>
25
+
26
+ <h2 id="super-simple-k-means-clustering-demo">super simple k-means clustering demo</h2>
27
+
28
+ <pre><code class="language-ruby">require "numo/narray"
29
+ require "rumale"
30
+ samples = Numo::DFloat[[1, 2], [1, 4], [1, 0],[10, 2], [10, 4], [10, 0]]
31
+ analyzer = Rumale::Clustering::KMeans.new(n_clusters: 2, max_iter: 50)
32
+ cluster_labels = analyzer.fit_predict(samples)
33
+ </code></pre>
34
+ [1, 1, 1, 0, 0, 0]
35
+
36
+ <p>We can see that the rumale <code>analyzer</code> separately labeled the first 3points and the last 3points.</p>
37
+
38
+ <h2 id="visualizing-clusters-with-rbplotlyhttpsgithubcomash1dayrbplotly">Visualizing clusters with <a href="https://github.com/ash1day/rbplotly">rbplotly</a></h2>
39
+
40
+ <p>Next we visualize the cluster with rbplotly</p>
41
+
42
+ <pre><code class="language-ruby">cluster0 = samples[0..2,0..1]
43
+ cluster1 = samples[3..5,0..1]
44
+ x0 = cluster0[0..-1,0].to_a
45
+ y0 = cluster0[0..-1,1].to_a
46
+ x1 = cluster1[0..-1,0].to_a
47
+ y1 = cluster1[0..-1,1].to_a
48
+ trace0 = {x:x0, y:y0, type: :scatter, mode: :markers}
49
+ trace1 = {x:x1, y:y1, type: :scatter, mode: :markers}
50
+ plot = Plotly::Plot.new(data: [trace0, trace1])
51
+ </code></pre>
52
+ <script>
53
+ requirejs.config({paths: { 'plotly': ['https://cdn.plot.ly/plotly-latest.min'] }})
54
+ </script>
55
+ <div id="3ddff889-18bb-4d81-9fc3-af9a3b6e014f" style="height: 100%; width: 100%;"></div>
56
+ <script>
57
+ require(['plotly'], function(Plotly) {
58
+ Plotly.newPlot(
59
+ '3ddff889-18bb-4d81-9fc3-af9a3b6e014f',
60
+ [{"x":[1.0,1.0,1.0],"y":[2.0,4.0,0.0],"type":"scatter","mode":"markers"},{"x":[10.0,10.0,10.0],"y":[2.0,4.0,0.0],"type":"scatter","mode":"markers"}],
61
+ {},
62
+ {"linkText":"Export to plot.ly","showLink":true}
63
+ )
64
+
65
+ window.addEventListener('resize', function() {
66
+ Plotly.Plots.resize(document.getElementById('3ddff889-18bb-4d81-9fc3-af9a3b6e014f'))
67
+ })
68
+ })
69
+ </script>
70
+
71
+ <p>The end</p>
72
+
73
+ </article>
74
+ </body>
75
+ </html>
@@ -0,0 +1,33 @@
1
+
2
+ # k-means clustering with [rumale](https://github.com/yoshoku/rumale)
3
+
4
+ ## super simple k-means clustering demo
5
+
6
+ ~~~ruby
7
+ require "numo/narray"
8
+ require "rumale"
9
+ samples = Numo::DFloat[[1, 2], [1, 4], [1, 0],[10, 2], [10, 4], [10, 0]]
10
+ analyzer = Rumale::Clustering::KMeans.new(n_clusters: 2, max_iter: 50)
11
+ cluster_labels = analyzer.fit_predict(samples)
12
+ ~~~
13
+
14
+
15
+ We can see that the rumale `analyzer` separately labeled the first 3points and the last 3points.
16
+
17
+ ## Visualizing clusters with [rbplotly](https://github.com/ash1day/rbplotly)
18
+
19
+ Next we visualize the cluster with rbplotly
20
+
21
+ ~~~ruby
22
+ cluster0 = samples[0..2,0..1]
23
+ cluster1 = samples[3..5,0..1]
24
+ x0 = cluster0[0..-1,0].to_a
25
+ y0 = cluster0[0..-1,1].to_a
26
+ x1 = cluster1[0..-1,0].to_a
27
+ y1 = cluster1[0..-1,1].to_a
28
+ trace0 = {x:x0, y:y0, type: :scatter, mode: :markers}
29
+ trace1 = {x:x1, y:y1, type: :scatter, mode: :markers}
30
+ plot = Plotly::Plot.new(data: [trace0, trace1])
31
+ ~~~
32
+
33
+ The end
@@ -0,0 +1,967 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta name="viewport" content="width=device-width, initial-scale=1">
5
+ <link href='https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/2.10.0/github-markdown.min.css' rel='stylesheet' type='text/css' />
6
+ <style>
7
+ article.markdown-body {
8
+ box-sizing: border-box;
9
+ min-width: 200px;
10
+ max-width: 980px;
11
+ margin: 0 auto;
12
+ padding: 45px;
13
+ }
14
+
15
+ span.line-numbers {
16
+ display: none;
17
+ }
18
+ </style>
19
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"></script>
20
+ </head>
21
+ <body>
22
+ <article class='markdown-body'>
23
+ <p>Rumale machine learning examples</p>
24
+
25
+ <pre><code class="language-ruby">require 'rumale'
26
+ require 'rdatasets'
27
+
28
+ iris = RDatasets.load(:datasets, :iris)
29
+
30
+ iris_labels = iris['Species'].to_a
31
+ encoder = Rumale::Preprocessing::LabelEncoder.new
32
+ labels = encoder.fit_transform(iris_labels)
33
+ p "hoge"
34
+ </code></pre>
35
+ <p> <pre><code>"hoge"
36
+
37
+ =&gt; hoge
38
+ </code></pre>
39
+ </p>
40
+
41
+ <pre><code class="language-ruby">samples = Numo::DFloat[*iris[0..3].to_matrix.to_a]
42
+ </code></pre>
43
+ <table>
44
+ <tbody>
45
+ <tr>
46
+ <td>5.1</td>
47
+ <td>3.5</td>
48
+ <td>1.4</td>
49
+ <td>0.2</td>
50
+ </tr>
51
+ <tr>
52
+ <td>4.9</td>
53
+ <td>3.0</td>
54
+ <td>1.4</td>
55
+ <td>0.2</td>
56
+ </tr>
57
+ <tr>
58
+ <td>4.7</td>
59
+ <td>3.2</td>
60
+ <td>1.3</td>
61
+ <td>0.2</td>
62
+ </tr>
63
+ <tr>
64
+ <td>4.6</td>
65
+ <td>3.1</td>
66
+ <td>1.5</td>
67
+ <td>0.2</td>
68
+ </tr>
69
+ <tr>
70
+ <td>5.0</td>
71
+ <td>3.6</td>
72
+ <td>1.4</td>
73
+ <td>0.2</td>
74
+ </tr>
75
+ <tr>
76
+ <td>5.4</td>
77
+ <td>3.9</td>
78
+ <td>1.7</td>
79
+ <td>0.4</td>
80
+ </tr>
81
+ <tr>
82
+ <td>4.6</td>
83
+ <td>3.4</td>
84
+ <td>1.4</td>
85
+ <td>0.3</td>
86
+ </tr>
87
+ <tr>
88
+ <td>5.0</td>
89
+ <td>3.4</td>
90
+ <td>1.5</td>
91
+ <td>0.2</td>
92
+ </tr>
93
+ <tr>
94
+ <td>4.4</td>
95
+ <td>2.9</td>
96
+ <td>1.4</td>
97
+ <td>0.2</td>
98
+ </tr>
99
+ <tr>
100
+ <td>4.9</td>
101
+ <td>3.1</td>
102
+ <td>1.5</td>
103
+ <td>0.1</td>
104
+ </tr>
105
+ <tr>
106
+ <td>5.4</td>
107
+ <td>3.7</td>
108
+ <td>1.5</td>
109
+ <td>0.2</td>
110
+ </tr>
111
+ <tr>
112
+ <td>4.8</td>
113
+ <td>3.4</td>
114
+ <td>1.6</td>
115
+ <td>0.2</td>
116
+ </tr>
117
+ <tr>
118
+ <td>4.8</td>
119
+ <td>3.0</td>
120
+ <td>1.4</td>
121
+ <td>0.1</td>
122
+ </tr>
123
+ <tr>
124
+ <td>4.3</td>
125
+ <td>3.0</td>
126
+ <td>1.1</td>
127
+ <td>0.1</td>
128
+ </tr>
129
+ <tr>
130
+ <td>5.8</td>
131
+ <td>4.0</td>
132
+ <td>1.2</td>
133
+ <td>0.2</td>
134
+ </tr>
135
+ <tr>
136
+ <td>5.7</td>
137
+ <td>4.4</td>
138
+ <td>1.5</td>
139
+ <td>0.4</td>
140
+ </tr>
141
+ <tr>
142
+ <td>5.4</td>
143
+ <td>3.9</td>
144
+ <td>1.3</td>
145
+ <td>0.4</td>
146
+ </tr>
147
+ <tr>
148
+ <td>5.1</td>
149
+ <td>3.5</td>
150
+ <td>1.4</td>
151
+ <td>0.3</td>
152
+ </tr>
153
+ <tr>
154
+ <td>5.7</td>
155
+ <td>3.8</td>
156
+ <td>1.7</td>
157
+ <td>0.3</td>
158
+ </tr>
159
+ <tr>
160
+ <td>5.1</td>
161
+ <td>3.8</td>
162
+ <td>1.5</td>
163
+ <td>0.3</td>
164
+ </tr>
165
+ <tr>
166
+ <td>5.4</td>
167
+ <td>3.4</td>
168
+ <td>1.7</td>
169
+ <td>0.2</td>
170
+ </tr>
171
+ <tr>
172
+ <td>5.1</td>
173
+ <td>3.7</td>
174
+ <td>1.5</td>
175
+ <td>0.4</td>
176
+ </tr>
177
+ <tr>
178
+ <td>4.6</td>
179
+ <td>3.6</td>
180
+ <td>1.0</td>
181
+ <td>0.2</td>
182
+ </tr>
183
+ <tr>
184
+ <td>5.1</td>
185
+ <td>3.3</td>
186
+ <td>1.7</td>
187
+ <td>0.5</td>
188
+ </tr>
189
+ <tr>
190
+ <td>4.8</td>
191
+ <td>3.4</td>
192
+ <td>1.9</td>
193
+ <td>0.2</td>
194
+ </tr>
195
+ <tr>
196
+ <td>5.0</td>
197
+ <td>3.0</td>
198
+ <td>1.6</td>
199
+ <td>0.2</td>
200
+ </tr>
201
+ <tr>
202
+ <td>5.0</td>
203
+ <td>3.4</td>
204
+ <td>1.6</td>
205
+ <td>0.4</td>
206
+ </tr>
207
+ <tr>
208
+ <td>5.2</td>
209
+ <td>3.5</td>
210
+ <td>1.5</td>
211
+ <td>0.2</td>
212
+ </tr>
213
+ <tr>
214
+ <td>5.2</td>
215
+ <td>3.4</td>
216
+ <td>1.4</td>
217
+ <td>0.2</td>
218
+ </tr>
219
+ <tr>
220
+ <td>4.7</td>
221
+ <td>3.2</td>
222
+ <td>1.6</td>
223
+ <td>0.2</td>
224
+ </tr>
225
+ <tr>
226
+ <td>4.8</td>
227
+ <td>3.1</td>
228
+ <td>1.6</td>
229
+ <td>0.2</td>
230
+ </tr>
231
+ <tr>
232
+ <td>5.4</td>
233
+ <td>3.4</td>
234
+ <td>1.5</td>
235
+ <td>0.4</td>
236
+ </tr>
237
+ <tr>
238
+ <td>5.2</td>
239
+ <td>4.1</td>
240
+ <td>1.5</td>
241
+ <td>0.1</td>
242
+ </tr>
243
+ <tr>
244
+ <td>5.5</td>
245
+ <td>4.2</td>
246
+ <td>1.4</td>
247
+ <td>0.2</td>
248
+ </tr>
249
+ <tr>
250
+ <td>4.9</td>
251
+ <td>3.1</td>
252
+ <td>1.5</td>
253
+ <td>0.2</td>
254
+ </tr>
255
+ <tr>
256
+ <td>5.0</td>
257
+ <td>3.2</td>
258
+ <td>1.2</td>
259
+ <td>0.2</td>
260
+ </tr>
261
+ <tr>
262
+ <td>5.5</td>
263
+ <td>3.5</td>
264
+ <td>1.3</td>
265
+ <td>0.2</td>
266
+ </tr>
267
+ <tr>
268
+ <td>4.9</td>
269
+ <td>3.6</td>
270
+ <td>1.4</td>
271
+ <td>0.1</td>
272
+ </tr>
273
+ <tr>
274
+ <td>4.4</td>
275
+ <td>3.0</td>
276
+ <td>1.3</td>
277
+ <td>0.2</td>
278
+ </tr>
279
+ <tr>
280
+ <td>5.1</td>
281
+ <td>3.4</td>
282
+ <td>1.5</td>
283
+ <td>0.2</td>
284
+ </tr>
285
+ <tr>
286
+ <td>5.0</td>
287
+ <td>3.5</td>
288
+ <td>1.3</td>
289
+ <td>0.3</td>
290
+ </tr>
291
+ <tr>
292
+ <td>4.5</td>
293
+ <td>2.3</td>
294
+ <td>1.3</td>
295
+ <td>0.3</td>
296
+ </tr>
297
+ <tr>
298
+ <td>4.4</td>
299
+ <td>3.2</td>
300
+ <td>1.3</td>
301
+ <td>0.2</td>
302
+ </tr>
303
+ <tr>
304
+ <td>5.0</td>
305
+ <td>3.5</td>
306
+ <td>1.6</td>
307
+ <td>0.6</td>
308
+ </tr>
309
+ <tr>
310
+ <td>5.1</td>
311
+ <td>3.8</td>
312
+ <td>1.9</td>
313
+ <td>0.4</td>
314
+ </tr>
315
+ <tr>
316
+ <td>4.8</td>
317
+ <td>3.0</td>
318
+ <td>1.4</td>
319
+ <td>0.3</td>
320
+ </tr>
321
+ <tr>
322
+ <td>5.1</td>
323
+ <td>3.8</td>
324
+ <td>1.6</td>
325
+ <td>0.2</td>
326
+ </tr>
327
+ <tr>
328
+ <td>4.6</td>
329
+ <td>3.2</td>
330
+ <td>1.4</td>
331
+ <td>0.2</td>
332
+ </tr>
333
+ <tr>
334
+ <td>5.3</td>
335
+ <td>3.7</td>
336
+ <td>1.5</td>
337
+ <td>0.2</td>
338
+ </tr>
339
+ <tr>
340
+ <td>5.0</td>
341
+ <td>3.3</td>
342
+ <td>1.4</td>
343
+ <td>0.2</td>
344
+ </tr>
345
+ <tr>
346
+ <td>7.0</td>
347
+ <td>3.2</td>
348
+ <td>4.7</td>
349
+ <td>1.4</td>
350
+ </tr>
351
+ <tr>
352
+ <td>6.4</td>
353
+ <td>3.2</td>
354
+ <td>4.5</td>
355
+ <td>1.5</td>
356
+ </tr>
357
+ <tr>
358
+ <td>6.9</td>
359
+ <td>3.1</td>
360
+ <td>4.9</td>
361
+ <td>1.5</td>
362
+ </tr>
363
+ <tr>
364
+ <td>5.5</td>
365
+ <td>2.3</td>
366
+ <td>4.0</td>
367
+ <td>1.3</td>
368
+ </tr>
369
+ <tr>
370
+ <td>6.5</td>
371
+ <td>2.8</td>
372
+ <td>4.6</td>
373
+ <td>1.5</td>
374
+ </tr>
375
+ <tr>
376
+ <td>5.7</td>
377
+ <td>2.8</td>
378
+ <td>4.5</td>
379
+ <td>1.3</td>
380
+ </tr>
381
+ <tr>
382
+ <td>6.3</td>
383
+ <td>3.3</td>
384
+ <td>4.7</td>
385
+ <td>1.6</td>
386
+ </tr>
387
+ <tr>
388
+ <td>4.9</td>
389
+ <td>2.4</td>
390
+ <td>3.3</td>
391
+ <td>1.0</td>
392
+ </tr>
393
+ <tr>
394
+ <td>6.6</td>
395
+ <td>2.9</td>
396
+ <td>4.6</td>
397
+ <td>1.3</td>
398
+ </tr>
399
+ <tr>
400
+ <td>5.2</td>
401
+ <td>2.7</td>
402
+ <td>3.9</td>
403
+ <td>1.4</td>
404
+ </tr>
405
+ <tr>
406
+ <td>5.0</td>
407
+ <td>2.0</td>
408
+ <td>3.5</td>
409
+ <td>1.0</td>
410
+ </tr>
411
+ <tr>
412
+ <td>5.9</td>
413
+ <td>3.0</td>
414
+ <td>4.2</td>
415
+ <td>1.5</td>
416
+ </tr>
417
+ <tr>
418
+ <td>6.0</td>
419
+ <td>2.2</td>
420
+ <td>4.0</td>
421
+ <td>1.0</td>
422
+ </tr>
423
+ <tr>
424
+ <td>6.1</td>
425
+ <td>2.9</td>
426
+ <td>4.7</td>
427
+ <td>1.4</td>
428
+ </tr>
429
+ <tr>
430
+ <td>5.6</td>
431
+ <td>2.9</td>
432
+ <td>3.6</td>
433
+ <td>1.3</td>
434
+ </tr>
435
+ <tr>
436
+ <td>6.7</td>
437
+ <td>3.1</td>
438
+ <td>4.4</td>
439
+ <td>1.4</td>
440
+ </tr>
441
+ <tr>
442
+ <td>5.6</td>
443
+ <td>3.0</td>
444
+ <td>4.5</td>
445
+ <td>1.5</td>
446
+ </tr>
447
+ <tr>
448
+ <td>5.8</td>
449
+ <td>2.7</td>
450
+ <td>4.1</td>
451
+ <td>1.0</td>
452
+ </tr>
453
+ <tr>
454
+ <td>6.2</td>
455
+ <td>2.2</td>
456
+ <td>4.5</td>
457
+ <td>1.5</td>
458
+ </tr>
459
+ <tr>
460
+ <td>5.6</td>
461
+ <td>2.5</td>
462
+ <td>3.9</td>
463
+ <td>1.1</td>
464
+ </tr>
465
+ <tr>
466
+ <td>5.9</td>
467
+ <td>3.2</td>
468
+ <td>4.8</td>
469
+ <td>1.8</td>
470
+ </tr>
471
+ <tr>
472
+ <td>6.1</td>
473
+ <td>2.8</td>
474
+ <td>4.0</td>
475
+ <td>1.3</td>
476
+ </tr>
477
+ <tr>
478
+ <td>6.3</td>
479
+ <td>2.5</td>
480
+ <td>4.9</td>
481
+ <td>1.5</td>
482
+ </tr>
483
+ <tr>
484
+ <td>6.1</td>
485
+ <td>2.8</td>
486
+ <td>4.7</td>
487
+ <td>1.2</td>
488
+ </tr>
489
+ <tr>
490
+ <td>6.4</td>
491
+ <td>2.9</td>
492
+ <td>4.3</td>
493
+ <td>1.3</td>
494
+ </tr>
495
+ <tr>
496
+ <td>6.6</td>
497
+ <td>3.0</td>
498
+ <td>4.4</td>
499
+ <td>1.4</td>
500
+ </tr>
501
+ <tr>
502
+ <td>6.8</td>
503
+ <td>2.8</td>
504
+ <td>4.8</td>
505
+ <td>1.4</td>
506
+ </tr>
507
+ <tr>
508
+ <td>6.7</td>
509
+ <td>3.0</td>
510
+ <td>5.0</td>
511
+ <td>1.7</td>
512
+ </tr>
513
+ <tr>
514
+ <td>6.0</td>
515
+ <td>2.9</td>
516
+ <td>4.5</td>
517
+ <td>1.5</td>
518
+ </tr>
519
+ <tr>
520
+ <td>5.7</td>
521
+ <td>2.6</td>
522
+ <td>3.5</td>
523
+ <td>1.0</td>
524
+ </tr>
525
+ <tr>
526
+ <td>5.5</td>
527
+ <td>2.4</td>
528
+ <td>3.8</td>
529
+ <td>1.1</td>
530
+ </tr>
531
+ <tr>
532
+ <td>5.5</td>
533
+ <td>2.4</td>
534
+ <td>3.7</td>
535
+ <td>1.0</td>
536
+ </tr>
537
+ <tr>
538
+ <td>5.8</td>
539
+ <td>2.7</td>
540
+ <td>3.9</td>
541
+ <td>1.2</td>
542
+ </tr>
543
+ <tr>
544
+ <td>6.0</td>
545
+ <td>2.7</td>
546
+ <td>5.1</td>
547
+ <td>1.6</td>
548
+ </tr>
549
+ <tr>
550
+ <td>5.4</td>
551
+ <td>3.0</td>
552
+ <td>4.5</td>
553
+ <td>1.5</td>
554
+ </tr>
555
+ <tr>
556
+ <td>6.0</td>
557
+ <td>3.4</td>
558
+ <td>4.5</td>
559
+ <td>1.6</td>
560
+ </tr>
561
+ <tr>
562
+ <td>6.7</td>
563
+ <td>3.1</td>
564
+ <td>4.7</td>
565
+ <td>1.5</td>
566
+ </tr>
567
+ <tr>
568
+ <td>6.3</td>
569
+ <td>2.3</td>
570
+ <td>4.4</td>
571
+ <td>1.3</td>
572
+ </tr>
573
+ <tr>
574
+ <td>5.6</td>
575
+ <td>3.0</td>
576
+ <td>4.1</td>
577
+ <td>1.3</td>
578
+ </tr>
579
+ <tr>
580
+ <td>5.5</td>
581
+ <td>2.5</td>
582
+ <td>4.0</td>
583
+ <td>1.3</td>
584
+ </tr>
585
+ <tr>
586
+ <td>5.5</td>
587
+ <td>2.6</td>
588
+ <td>4.4</td>
589
+ <td>1.2</td>
590
+ </tr>
591
+ <tr>
592
+ <td>6.1</td>
593
+ <td>3.0</td>
594
+ <td>4.6</td>
595
+ <td>1.4</td>
596
+ </tr>
597
+ <tr>
598
+ <td>5.8</td>
599
+ <td>2.6</td>
600
+ <td>4.0</td>
601
+ <td>1.2</td>
602
+ </tr>
603
+ <tr>
604
+ <td>5.0</td>
605
+ <td>2.3</td>
606
+ <td>3.3</td>
607
+ <td>1.0</td>
608
+ </tr>
609
+ <tr>
610
+ <td>5.6</td>
611
+ <td>2.7</td>
612
+ <td>4.2</td>
613
+ <td>1.3</td>
614
+ </tr>
615
+ <tr>
616
+ <td>5.7</td>
617
+ <td>3.0</td>
618
+ <td>4.2</td>
619
+ <td>1.2</td>
620
+ </tr>
621
+ <tr>
622
+ <td>5.7</td>
623
+ <td>2.9</td>
624
+ <td>4.2</td>
625
+ <td>1.3</td>
626
+ </tr>
627
+ <tr>
628
+ <td>6.2</td>
629
+ <td>2.9</td>
630
+ <td>4.3</td>
631
+ <td>1.3</td>
632
+ </tr>
633
+ <tr>
634
+ <td>5.1</td>
635
+ <td>2.5</td>
636
+ <td>3.0</td>
637
+ <td>1.1</td>
638
+ </tr>
639
+ <tr>
640
+ <td>5.7</td>
641
+ <td>2.8</td>
642
+ <td>4.1</td>
643
+ <td>1.3</td>
644
+ </tr>
645
+ <tr>
646
+ <td>6.3</td>
647
+ <td>3.3</td>
648
+ <td>6.0</td>
649
+ <td>2.5</td>
650
+ </tr>
651
+ <tr>
652
+ <td>5.8</td>
653
+ <td>2.7</td>
654
+ <td>5.1</td>
655
+ <td>1.9</td>
656
+ </tr>
657
+ <tr>
658
+ <td>7.1</td>
659
+ <td>3.0</td>
660
+ <td>5.9</td>
661
+ <td>2.1</td>
662
+ </tr>
663
+ <tr>
664
+ <td>6.3</td>
665
+ <td>2.9</td>
666
+ <td>5.6</td>
667
+ <td>1.8</td>
668
+ </tr>
669
+ <tr>
670
+ <td>6.5</td>
671
+ <td>3.0</td>
672
+ <td>5.8</td>
673
+ <td>2.2</td>
674
+ </tr>
675
+ <tr>
676
+ <td>7.6</td>
677
+ <td>3.0</td>
678
+ <td>6.6</td>
679
+ <td>2.1</td>
680
+ </tr>
681
+ <tr>
682
+ <td>4.9</td>
683
+ <td>2.5</td>
684
+ <td>4.5</td>
685
+ <td>1.7</td>
686
+ </tr>
687
+ <tr>
688
+ <td>7.3</td>
689
+ <td>2.9</td>
690
+ <td>6.3</td>
691
+ <td>1.8</td>
692
+ </tr>
693
+ <tr>
694
+ <td>6.7</td>
695
+ <td>2.5</td>
696
+ <td>5.8</td>
697
+ <td>1.8</td>
698
+ </tr>
699
+ <tr>
700
+ <td>7.2</td>
701
+ <td>3.6</td>
702
+ <td>6.1</td>
703
+ <td>2.5</td>
704
+ </tr>
705
+ <tr>
706
+ <td>6.5</td>
707
+ <td>3.2</td>
708
+ <td>5.1</td>
709
+ <td>2.0</td>
710
+ </tr>
711
+ <tr>
712
+ <td>6.4</td>
713
+ <td>2.7</td>
714
+ <td>5.3</td>
715
+ <td>1.9</td>
716
+ </tr>
717
+ <tr>
718
+ <td>6.8</td>
719
+ <td>3.0</td>
720
+ <td>5.5</td>
721
+ <td>2.1</td>
722
+ </tr>
723
+ <tr>
724
+ <td>5.7</td>
725
+ <td>2.5</td>
726
+ <td>5.0</td>
727
+ <td>2.0</td>
728
+ </tr>
729
+ <tr>
730
+ <td>5.8</td>
731
+ <td>2.8</td>
732
+ <td>5.1</td>
733
+ <td>2.4</td>
734
+ </tr>
735
+ <tr>
736
+ <td>6.4</td>
737
+ <td>3.2</td>
738
+ <td>5.3</td>
739
+ <td>2.3</td>
740
+ </tr>
741
+ <tr>
742
+ <td>6.5</td>
743
+ <td>3.0</td>
744
+ <td>5.5</td>
745
+ <td>1.8</td>
746
+ </tr>
747
+ <tr>
748
+ <td>7.7</td>
749
+ <td>3.8</td>
750
+ <td>6.7</td>
751
+ <td>2.2</td>
752
+ </tr>
753
+ <tr>
754
+ <td>7.7</td>
755
+ <td>2.6</td>
756
+ <td>6.9</td>
757
+ <td>2.3</td>
758
+ </tr>
759
+ <tr>
760
+ <td>6.0</td>
761
+ <td>2.2</td>
762
+ <td>5.0</td>
763
+ <td>1.5</td>
764
+ </tr>
765
+ <tr>
766
+ <td>6.9</td>
767
+ <td>3.2</td>
768
+ <td>5.7</td>
769
+ <td>2.3</td>
770
+ </tr>
771
+ <tr>
772
+ <td>5.6</td>
773
+ <td>2.8</td>
774
+ <td>4.9</td>
775
+ <td>2.0</td>
776
+ </tr>
777
+ <tr>
778
+ <td>7.7</td>
779
+ <td>2.8</td>
780
+ <td>6.7</td>
781
+ <td>2.0</td>
782
+ </tr>
783
+ <tr>
784
+ <td>6.3</td>
785
+ <td>2.7</td>
786
+ <td>4.9</td>
787
+ <td>1.8</td>
788
+ </tr>
789
+ <tr>
790
+ <td>6.7</td>
791
+ <td>3.3</td>
792
+ <td>5.7</td>
793
+ <td>2.1</td>
794
+ </tr>
795
+ <tr>
796
+ <td>7.2</td>
797
+ <td>3.2</td>
798
+ <td>6.0</td>
799
+ <td>1.8</td>
800
+ </tr>
801
+ <tr>
802
+ <td>6.2</td>
803
+ <td>2.8</td>
804
+ <td>4.8</td>
805
+ <td>1.8</td>
806
+ </tr>
807
+ <tr>
808
+ <td>6.1</td>
809
+ <td>3.0</td>
810
+ <td>4.9</td>
811
+ <td>1.8</td>
812
+ </tr>
813
+ <tr>
814
+ <td>6.4</td>
815
+ <td>2.8</td>
816
+ <td>5.6</td>
817
+ <td>2.1</td>
818
+ </tr>
819
+ <tr>
820
+ <td>7.2</td>
821
+ <td>3.0</td>
822
+ <td>5.8</td>
823
+ <td>1.6</td>
824
+ </tr>
825
+ <tr>
826
+ <td>7.4</td>
827
+ <td>2.8</td>
828
+ <td>6.1</td>
829
+ <td>1.9</td>
830
+ </tr>
831
+ <tr>
832
+ <td>7.9</td>
833
+ <td>3.8</td>
834
+ <td>6.4</td>
835
+ <td>2.0</td>
836
+ </tr>
837
+ <tr>
838
+ <td>6.4</td>
839
+ <td>2.8</td>
840
+ <td>5.6</td>
841
+ <td>2.2</td>
842
+ </tr>
843
+ <tr>
844
+ <td>6.3</td>
845
+ <td>2.8</td>
846
+ <td>5.1</td>
847
+ <td>1.5</td>
848
+ </tr>
849
+ <tr>
850
+ <td>6.1</td>
851
+ <td>2.6</td>
852
+ <td>5.6</td>
853
+ <td>1.4</td>
854
+ </tr>
855
+ <tr>
856
+ <td>7.7</td>
857
+ <td>3.0</td>
858
+ <td>6.1</td>
859
+ <td>2.3</td>
860
+ </tr>
861
+ <tr>
862
+ <td>6.3</td>
863
+ <td>3.4</td>
864
+ <td>5.6</td>
865
+ <td>2.4</td>
866
+ </tr>
867
+ <tr>
868
+ <td>6.4</td>
869
+ <td>3.1</td>
870
+ <td>5.5</td>
871
+ <td>1.8</td>
872
+ </tr>
873
+ <tr>
874
+ <td>6.0</td>
875
+ <td>3.0</td>
876
+ <td>4.8</td>
877
+ <td>1.8</td>
878
+ </tr>
879
+ <tr>
880
+ <td>6.9</td>
881
+ <td>3.1</td>
882
+ <td>5.4</td>
883
+ <td>2.1</td>
884
+ </tr>
885
+ <tr>
886
+ <td>6.7</td>
887
+ <td>3.1</td>
888
+ <td>5.6</td>
889
+ <td>2.4</td>
890
+ </tr>
891
+ <tr>
892
+ <td>6.9</td>
893
+ <td>3.1</td>
894
+ <td>5.1</td>
895
+ <td>2.3</td>
896
+ </tr>
897
+ <tr>
898
+ <td>5.8</td>
899
+ <td>2.7</td>
900
+ <td>5.1</td>
901
+ <td>1.9</td>
902
+ </tr>
903
+ <tr>
904
+ <td>6.8</td>
905
+ <td>3.2</td>
906
+ <td>5.9</td>
907
+ <td>2.3</td>
908
+ </tr>
909
+ <tr>
910
+ <td>6.7</td>
911
+ <td>3.3</td>
912
+ <td>5.7</td>
913
+ <td>2.5</td>
914
+ </tr>
915
+ <tr>
916
+ <td>6.7</td>
917
+ <td>3.0</td>
918
+ <td>5.2</td>
919
+ <td>2.3</td>
920
+ </tr>
921
+ <tr>
922
+ <td>6.3</td>
923
+ <td>2.5</td>
924
+ <td>5.0</td>
925
+ <td>1.9</td>
926
+ </tr>
927
+ <tr>
928
+ <td>6.5</td>
929
+ <td>3.0</td>
930
+ <td>5.2</td>
931
+ <td>2.0</td>
932
+ </tr>
933
+ <tr>
934
+ <td>6.2</td>
935
+ <td>3.4</td>
936
+ <td>5.4</td>
937
+ <td>2.3</td>
938
+ </tr>
939
+ <tr>
940
+ <td>5.9</td>
941
+ <td>3.0</td>
942
+ <td>5.1</td>
943
+ <td>1.8</td>
944
+ </tr>
945
+ </tbody>
946
+ </table>
947
+
948
+ <pre><code class="language-ruby">model = Rumale::LinearModel::SVC.new(
949
+ reg_param: 0.0001,
950
+ fit_bias: true,
951
+ max_iter: 3000,
952
+ random_seed: 1
953
+ )
954
+
955
+ model.fit(samples, labels)
956
+
957
+ p model.predict(samples).to_a
958
+ </code></pre>
959
+ <p> <pre><code>[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]
960
+
961
+ =&gt; [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]
962
+ </code></pre>
963
+ </p>
964
+
965
+ </article>
966
+ </body>
967
+ </html>