Files
ISLR.jl/Chapter_06.ipynb
2020-12-10 09:52:57 -05:00

360 lines
42 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"using CSV\n",
"using DataFrames\n",
"using Plots\n",
"using StatsPlots\n",
"using GLM\n",
"using Statistics\n",
"using Distributions\n",
"using Random\n",
"using MultivariateStats"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"FullNormal(\n",
"dim: 2\n",
"μ: [0.0, 0.0]\n",
"Σ: [1.0 1.0; 1.0 2.0]\n",
")\n"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"μ = [0, 0]\n",
"σ = [1.0 1.0; 1.0 2.0]\n",
"dist = Distributions.MvNormal(μ, σ)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2×100 Array{Float64,2}:\n",
" 1.90728 0.417492 0.514817 0.453653 … 0.991181 1.40246 0.892847\n",
" 0.710246 0.31368 -0.209396 -0.669405 1.54026 1.47478 1.03204"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sample = rand(dist, 100) # the random samples are close to Figure 6.14"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"PCA(indim = 2, outdim = 2, principalratio = 1.0)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"p = fit(PCA, sample)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"600\" height=\"400\" viewBox=\"0 0 2400 1600\">\n",
"<defs>\n",
" <clipPath id=\"clip910\">\n",
" <rect x=\"0\" y=\"0\" width=\"2400\" height=\"1600\"/>\n",
" </clipPath>\n",
"</defs>\n",
"<path clip-path=\"url(#clip910)\" d=\"\n",
"M0 1600 L2400 1600 L2400 0 L0 0 Z\n",
" \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
"<defs>\n",
" <clipPath id=\"clip911\">\n",
" <rect x=\"480\" y=\"0\" width=\"1681\" height=\"1600\"/>\n",
" </clipPath>\n",
"</defs>\n",
"<path clip-path=\"url(#clip910)\" d=\"\n",
"M143.033 1486.45 L2352.76 1486.45 L2352.76 47.2441 L143.033 47.2441 Z\n",
" \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
"<defs>\n",
" <clipPath id=\"clip912\">\n",
" <rect x=\"143\" y=\"47\" width=\"2211\" height=\"1440\"/>\n",
" </clipPath>\n",
"</defs>\n",
"<polyline clip-path=\"url(#clip912)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 492.261,1486.45 492.261,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip912)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 941.75,1486.45 941.75,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip912)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 1391.24,1486.45 1391.24,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip912)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 1840.73,1486.45 1840.73,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip912)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 2290.22,1486.45 2290.22,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip910)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 143.033,1486.45 2352.76,1486.45 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip910)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 492.261,1486.45 492.261,1469.18 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip910)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 941.75,1486.45 941.75,1469.18 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip910)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1391.24,1486.45 1391.24,1469.18 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip910)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1840.73,1486.45 1840.73,1469.18 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip910)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 2290.22,1486.45 2290.22,1469.18 \n",
" \"/>\n",
"<path clip-path=\"url(#clip910)\" d=\"M 0 0 M464.715 1530.29 L494.391 1530.29 L494.391 1534.23 L464.715 1534.23 L464.715 1530.29 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip910)\" d=\"M 0 0 M503.488 1543.18 L519.807 1543.18 L519.807 1547.12 L497.863 1547.12 L497.863 1543.18 Q500.525 1540.43 505.108 1535.8 Q509.715 1531.15 510.895 1529.81 Q513.141 1527.28 514.02 1525.55 Q514.923 1523.79 514.923 1522.1 Q514.923 1519.34 512.979 1517.61 Q511.057 1515.87 507.955 1515.87 Q505.756 1515.87 503.303 1516.63 Q500.872 1517.4 498.094 1518.95 L498.094 1514.23 Q500.918 1513.09 503.372 1512.51 Q505.826 1511.93 507.863 1511.93 Q513.233 1511.93 516.428 1514.62 Q519.622 1517.31 519.622 1521.8 Q519.622 1523.93 518.812 1525.85 Q518.025 1527.74 515.918 1530.34 Q515.34 1531.01 512.238 1534.23 Q509.136 1537.42 503.488 1543.18 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip910)\" d=\"M 0 0 M914.019 1530.29 L943.694 1530.29 L943.694 1534.23 L914.019 1534.23 L914.019 1530.29 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip910)\" d=\"M 0 0 M949.574 1543.18 L957.213 1543.18 L957.213 1516.82 L948.903 1518.49 L948.903 1514.23 L957.167 1512.56 L961.842 1512.56 L961.842 1543.18 L969.481 1543.18 L969.481 1547.12 L949.574 1547.12 L949.574 1543.18 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip910)\" d=\"M 0 0 M1391.24 1515.64 Q1387.63 1515.64 1385.8 1519.2 Q1383.99 1522.75 1383.99 1529.87 Q1383.99 1536.98 1385.8 1540.55 Q1387.63 1544.09 1391.24 1544.09 Q1394.87 1544.09 1396.68 1540.55 Q1398.51 1536.98 1398.51 1529.87 Q1398.51 1522.75 1396.68 1519.2 Q1394.87 1515.64 1391.24 1515.64 M1391.24 1511.93 Q1397.05 1511.93 1400.1 1516.54 Q1403.18 1521.12 1403.18 1529.87 Q1403.18 1538.6 1400.1 1543.21 Q1397.05 1547.79 1391.24 1547.79 Q1385.43 1547.79 1382.35 1543.21 Q1379.29 1538.6 1379.29 1529.87 Q1379.29 1521.12 1382.35 1516.54 Q1385.43 1511.93 1391.24 1511.93 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip910)\" d=\"M 0 0 M1831.11 1543.18 L1838.75 1543.18 L1838.75 1516.82 L1830.44 1518.49 L1830.44 1514.23 L1838.7 1512.56 L1843.38 1512.56 L1843.38 1543.18 L1851.02 1543.18 L1851.02 1547.12 L1831.11 1547.12 L1831.11 1543.18 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip910)\" d=\"M 0 0 M2284.87 1543.18 L2301.19 1543.18 L2301.19 1547.12 L2279.24 1547.12 L2279.24 1543.18 Q2281.91 1540.43 2286.49 1535.8 Q2291.1 1531.15 2292.28 1529.81 Q2294.52 1527.28 2295.4 1525.55 Q2296.3 1523.79 2296.3 1522.1 Q2296.3 1519.34 2294.36 1517.61 Q2292.44 1515.87 2289.34 1515.87 Q2287.14 1515.87 2284.68 1516.63 Q2282.25 1517.4 2279.48 1518.95 L2279.48 1514.23 Q2282.3 1513.09 2284.75 1512.51 Q2287.21 1511.93 2289.24 1511.93 Q2294.61 1511.93 2297.81 1514.62 Q2301 1517.31 2301 1521.8 Q2301 1523.93 2300.19 1525.85 Q2299.41 1527.74 2297.3 1530.34 Q2296.72 1531.01 2293.62 1534.23 Q2290.52 1537.42 2284.87 1543.18 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip912)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 143.033,1327.84 2352.76,1327.84 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip912)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 143.033,1140.84 2352.76,1140.84 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip912)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 143.033,953.845 2352.76,953.845 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip912)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 143.033,766.846 2352.76,766.846 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip912)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 143.033,579.847 2352.76,579.847 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip912)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 143.033,392.848 2352.76,392.848 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip912)\" style=\"stroke:#000000; stroke-width:2; stroke-opacity:0.1; fill:none\" points=\"\n",
" 143.033,205.849 2352.76,205.849 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip910)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 143.033,1486.45 143.033,47.2441 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip910)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 143.033,1327.84 169.55,1327.84 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip910)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 143.033,1140.84 169.55,1140.84 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip910)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 143.033,953.845 169.55,953.845 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip910)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 143.033,766.846 169.55,766.846 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip910)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 143.033,579.847 169.55,579.847 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip910)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 143.033,392.848 169.55,392.848 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip910)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 143.033,205.849 169.55,205.849 \n",
" \"/>\n",
"<path clip-path=\"url(#clip910)\" d=\"M 0 0 M50.9921 1328.29 L80.6679 1328.29 L80.6679 1332.23 L50.9921 1332.23 L50.9921 1328.29 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip910)\" d=\"M 0 0 M99.9039 1326.49 Q103.26 1327.21 105.135 1329.48 Q107.033 1331.74 107.033 1335.08 Q107.033 1340.19 103.515 1342.99 Q99.9965 1345.79 93.515 1345.79 Q91.3391 1345.79 89.0243 1345.35 Q86.7327 1344.94 84.279 1344.08 L84.279 1339.57 Q86.2234 1340.7 88.5382 1341.28 Q90.853 1341.86 93.3762 1341.86 Q97.7743 1341.86 100.066 1340.12 Q102.381 1338.39 102.381 1335.08 Q102.381 1332.02 100.228 1330.31 Q98.0984 1328.57 94.2789 1328.57 L90.2512 1328.57 L90.2512 1324.73 L94.4641 1324.73 Q97.9132 1324.73 99.7419 1323.36 Q101.571 1321.98 101.571 1319.38 Q101.571 1316.72 99.6724 1315.31 Q97.7974 1313.87 94.2789 1313.87 Q92.3576 1313.87 90.1586 1314.29 Q87.9595 1314.71 85.3206 1315.59 L85.3206 1311.42 Q87.9827 1310.68 90.2975 1310.31 Q92.6354 1309.94 94.6956 1309.94 Q100.02 1309.94 103.121 1312.37 Q106.223 1314.78 106.223 1318.9 Q106.223 1321.77 104.58 1323.76 Q102.936 1325.73 99.9039 1326.49 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip910)\" d=\"M 0 0 M51.9412 1141.3 L81.617 1141.3 L81.617 1145.23 L51.9412 1145.23 L51.9412 1141.3 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip910)\" d=\"M 0 0 M90.7141 1154.19 L107.033 1154.19 L107.033 1158.12 L85.0892 1158.12 L85.0892 1154.19 Q87.7512 1151.43 92.3345 1146.8 Q96.941 1142.15 98.1215 1140.81 Q100.367 1138.29 101.246 1136.55 Q102.149 1134.79 102.149 1133.1 Q102.149 1130.35 100.205 1128.61 Q98.2835 1126.87 95.1817 1126.87 Q92.9826 1126.87 90.529 1127.64 Q88.0984 1128.4 85.3206 1129.95 L85.3206 1125.23 Q88.1447 1124.1 90.5984 1123.52 Q93.0521 1122.94 95.0891 1122.94 Q100.459 1122.94 103.654 1125.62 Q106.848 1128.31 106.848 1132.8 Q106.848 1134.93 106.038 1136.85 Q105.251 1138.75 103.145 1141.34 Q102.566 1142.01 99.4641 1145.23 Q96.3623 1148.43 90.7141 1154.19 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip910)\" d=\"M 0 0 M51.5708 954.296 L81.2466 954.296 L81.2466 958.232 L51.5708 958.232 L51.5708 954.296 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip910)\" d=\"M 0 0 M87.1262 967.19 L94.765 967.19 L94.765 940.824 L86.4549 942.491 L86.4549 938.232 L94.7187 936.565 L99.3946 936.565 L99.3946 967.19 L107.033 967.19 L107.033 971.125 L87.1262 971.125 L87.1262 967.19 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip910)\" d=\"M 0 0 M95.0891 752.645 Q91.478 752.645 89.6493 756.209 Q87.8438 759.751 87.8438 766.881 Q87.8438 773.987 89.6493 777.552 Q91.478 781.094 95.0891 781.094 Q98.7234 781.094 100.529 777.552 Q102.358 773.987 102.358 766.881 Q102.358 759.751 100.529 756.209 Q98.7234 752.645 95.0891 752.645 M95.0891 748.941 Q100.899 748.941 103.955 753.547 Q107.033 758.131 107.033 766.881 Q107.033 775.608 103.955 780.214 Q100.899 784.797 95.0891 784.797 Q89.279 784.797 86.2003 780.214 Q83.1447 775.608 83.1447 766.881 Q83.1447 758.131 86.2003 753.547 Q89.279 748.941 95.0891 748.941 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip910)\" d=\"M 0 0 M87.1262 593.192 L94.765 593.192 L94.765 566.826 L86.4549 568.493 L86.4549 564.234 L94.7187 562.567 L99.3946 562.567 L99.3946 593.192 L107.033 593.192 L107.033 597.127 L87.1262 597.127 L87.1262 593.192 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip910)\" d=\"M 0 0 M90.7141 406.193 L107.033 406.193 L107.033 410.128 L85.0892 410.128 L85.0892 406.193 Q87.7512 403.438 92.3345 398.809 Q96.941 394.156 98.1215 392.813 Q100.367 390.29 101.246 388.554 Q102.149 386.795 102.149 385.105 Q102.149 382.35 100.205 380.614 Q98.2835 378.878 95.1817 378.878 Q92.9826 378.878 90.529 379.642 Q88.0984 380.406 85.3206 381.957 L85.3206 377.235 Q88.1447 376.1 90.5984 375.522 Q93.0521 374.943 95.0891 374.943 Q100.459 374.943 103.654 377.628 Q106.848 380.313 106.848 384.804 Q106.848 386.934 106.038 388.855 Q105.251 390.753 103.145 393.346 Q102.566 394.017 99.4641 397.234 Q96.3623 400.429 90.7141 406.193 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip910)\" d=\"M 0 0 M99.9039 204.495 Q103.26 205.212 105.135 207.481 Q107.033 209.749 107.033 213.083 Q107.033 218.198 103.515 220.999 Q99.9965 223.8 93.515 223.8 Q91.3391 223.8 89.0243 223.36 Q86.7327 222.944 84.279 222.087 L84.279 217.573 Q86.2234 218.708 88.5382 219.286 Q90.853 219.865 93.3762 219.865 Q97.7743 219.865 100.066 218.129 Q102.381 216.393 102.381 213.083 Q102.381 210.027 100.228 208.314 Q98.0984 206.578 94.2789 206.578 L90.2512 206.578 L90.2512 202.735 L94.4641 202.735 Q97.9132 202.735 99.7419 201.37 Q101.571 199.981 101.571 197.388 Q101.571 194.726 99.6724 193.314 Q97.7974 191.879 94.2789 191.879 Q92.3576 191.879 90.1586 192.296 Q87.9595 192.712 85.3206 193.592 L85.3206 189.425 Q87.9827 188.685 90.2975 188.314 Q92.6354 187.944 94.6956 187.944 Q100.02 187.944 103.121 190.374 Q106.223 192.782 106.223 196.902 Q106.223 199.772 104.58 201.763 Q102.936 203.731 99.9039 204.495 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><circle clip-path=\"url(#clip912)\" cx=\"2248.54\" cy=\"634.031\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1578.9\" cy=\"708.188\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1622.64\" cy=\"806.003\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1595.15\" cy=\"892.024\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"913.475\" cy=\"1047.45\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"777.802\" cy=\"617.908\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"647.377\" cy=\"929.039\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"2038.02\" cy=\"652.747\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1152.94\" cy=\"807.914\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1603.88\" cy=\"540.756\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"784.987\" cy=\"869.799\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1392.87\" cy=\"652.012\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1230.02\" cy=\"628.123\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1371.45\" cy=\"431.986\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"732.554\" cy=\"1116.92\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1074.46\" cy=\"1010.31\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1008.08\" cy=\"933.752\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1596\" cy=\"940.734\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1035.09\" cy=\"1036.14\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1695.07\" cy=\"947.532\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"2024.51\" cy=\"445.482\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1422\" cy=\"827.453\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1228.2\" cy=\"872.521\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1319.14\" cy=\"884.711\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1023.48\" cy=\"1028.59\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1713.46\" cy=\"599.598\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1074.94\" cy=\"791.98\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1835.23\" cy=\"367.162\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1394.54\" cy=\"854.317\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1276.85\" cy=\"1021.57\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1626.56\" cy=\"730.304\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1053\" cy=\"887.523\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1581.38\" cy=\"527.618\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"875.461\" cy=\"1058.62\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1537.06\" cy=\"810.19\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"488.865\" cy=\"1148.39\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1368.68\" cy=\"738.607\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1733.13\" cy=\"228.1\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1490.62\" cy=\"433.907\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1223.68\" cy=\"853.16\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1446.46\" cy=\"425.392\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1850.66\" cy=\"459.275\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1224.86\" cy=\"1002.16\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1278.32\" cy=\"1229.12\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1580.97\" cy=\"933.417\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"205.573\" cy=\"1203.57\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"2251.92\" cy=\"111.33\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1707.37\" cy=\"795.82\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"788.784\" cy=\"1059.17\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1640.81\" cy=\"391.353\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"838.009\" cy=\"894.773\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1273.49\" cy=\"1332.61\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1374.93\" cy=\"379.964\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"685.553\" cy=\"1053.91\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1515.81\" cy=\"806.692\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1204.29\" cy=\"1135.34\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1610.03\" cy=\"721.252\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1649.65\" cy=\"842.122\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1041.74\" cy=\"1143.35\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"849.274\" cy=\"1281.95\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1213.46\" cy=\"660.893\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"919.768\" cy=\"1076.92\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1272.33\" cy=\"910.919\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1492.63\" cy=\"807.243\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1957.18\" cy=\"594.75\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1810.24\" cy=\"324.439\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"783.552\" cy=\"1265.61\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1635.5\" cy=\"528.99\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1288.89\" cy=\"988.92\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1478.01\" cy=\"780.334\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"977.051\" cy=\"1007.12\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1408.78\" cy=\"848.63\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1040.27\" cy=\"954.901\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1465.39\" cy=\"849.806\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1822.97\" cy=\"393.199\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1734.07\" cy=\"445.127\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1119.93\" cy=\"1032.17\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"814.532\" cy=\"1310.19\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1215.21\" cy=\"1174.22\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1426.69\" cy=\"892.478\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1013.64\" cy=\"718\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1326.94\" cy=\"804.713\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1379.65\" cy=\"991.091\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1151.49\" cy=\"674.702\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1074.35\" cy=\"1061.58\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"616.581\" cy=\"1116.9\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"991.227\" cy=\"1036.24\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1960.9\" cy=\"256.935\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1669.05\" cy=\"770.024\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1252.48\" cy=\"1060.5\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"532.687\" cy=\"1090.57\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1947.05\" cy=\"678.94\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1903.04\" cy=\"613.089\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1308.51\" cy=\"628.146\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1448.36\" cy=\"669.205\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1662.86\" cy=\"697.72\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1823.62\" cy=\"775.488\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1836.76\" cy=\"478.819\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"2021.63\" cy=\"491.064\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<circle clip-path=\"url(#clip912)\" cx=\"1792.56\" cy=\"573.856\" r=\"14\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"3.2\"/>\n",
"<polyline clip-path=\"url(#clip912)\" style=\"stroke:#e26f46; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 492.261,1445.72 2290.22,87.9763 \n",
" \"/>\n",
"<polyline clip-path=\"url(#clip912)\" style=\"stroke:#3da44d; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 492.261,560.806 2290.22,972.886 \n",
" \"/>\n",
"<path clip-path=\"url(#clip910)\" d=\"\n",
"M1981.98 337.138 L2279.1 337.138 L2279.1 95.2176 L1981.98 95.2176 Z\n",
" \" fill=\"#ffffff\" fill-rule=\"evenodd\" fill-opacity=\"1\"/>\n",
"<polyline clip-path=\"url(#clip910)\" style=\"stroke:#000000; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 1981.98,337.138 2279.1,337.138 2279.1,95.2176 1981.98,95.2176 1981.98,337.138 \n",
" \"/>\n",
"<circle clip-path=\"url(#clip910)\" cx=\"2080.19\" cy=\"155.698\" r=\"23\" fill=\"#009af9\" fill-rule=\"evenodd\" fill-opacity=\"1\" stroke=\"#000000\" stroke-opacity=\"1\" stroke-width=\"5.12\"/>\n",
"<path clip-path=\"url(#clip910)\" d=\"M 0 0 M2192.24 175.385 Q2190.43 180.015 2188.72 181.427 Q2187.01 182.839 2184.14 182.839 L2180.73 182.839 L2180.73 179.274 L2183.23 179.274 Q2184.99 179.274 2185.97 178.44 Q2186.94 177.607 2188.12 174.505 L2188.88 172.561 L2178.4 147.052 L2182.91 147.052 L2191.01 167.329 L2199.11 147.052 L2203.63 147.052 L2192.24 175.385 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip910)\" d=\"M 0 0 M2209.51 169.042 L2217.15 169.042 L2217.15 142.677 L2208.84 144.343 L2208.84 140.084 L2217.1 138.418 L2221.78 138.418 L2221.78 169.042 L2229.41 169.042 L2229.41 172.978 L2209.51 172.978 L2209.51 169.042 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip910)\" style=\"stroke:#e26f46; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 2006.53,216.178 2153.84,216.178 \n",
" \"/>\n",
"<path clip-path=\"url(#clip910)\" d=\"M 0 0 M2192.24 235.865 Q2190.43 240.495 2188.72 241.907 Q2187.01 243.319 2184.14 243.319 L2180.73 243.319 L2180.73 239.754 L2183.23 239.754 Q2184.99 239.754 2185.97 238.92 Q2186.94 238.087 2188.12 234.985 L2188.88 233.041 L2178.4 207.532 L2182.91 207.532 L2191.01 227.809 L2199.11 207.532 L2203.63 207.532 L2192.24 235.865 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip910)\" d=\"M 0 0 M2212.73 229.522 L2229.04 229.522 L2229.04 233.458 L2207.1 233.458 L2207.1 229.522 Q2209.76 226.768 2214.35 222.138 Q2218.95 217.485 2220.13 216.143 Q2222.38 213.62 2223.26 211.884 Q2224.16 210.124 2224.16 208.435 Q2224.16 205.68 2222.22 203.944 Q2220.29 202.208 2217.19 202.208 Q2214.99 202.208 2212.54 202.972 Q2210.11 203.735 2207.33 205.286 L2207.33 200.564 Q2210.16 199.43 2212.61 198.851 Q2215.06 198.273 2217.1 198.273 Q2222.47 198.273 2225.66 200.958 Q2228.86 203.643 2228.86 208.134 Q2228.86 210.263 2228.05 212.185 Q2227.26 214.083 2225.16 216.675 Q2224.58 217.347 2221.48 220.564 Q2218.37 223.759 2212.73 229.522 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><polyline clip-path=\"url(#clip910)\" style=\"stroke:#3da44d; stroke-width:4; stroke-opacity:1; fill:none\" points=\"\n",
" 2006.53,276.658 2153.84,276.658 \n",
" \"/>\n",
"<path clip-path=\"url(#clip910)\" d=\"M 0 0 M2192.24 296.345 Q2190.43 300.975 2188.72 302.387 Q2187.01 303.799 2184.14 303.799 L2180.73 303.799 L2180.73 300.234 L2183.23 300.234 Q2184.99 300.234 2185.97 299.4 Q2186.94 298.567 2188.12 295.465 L2188.88 293.521 L2178.4 268.012 L2182.91 268.012 L2191.01 288.289 L2199.11 268.012 L2203.63 268.012 L2192.24 296.345 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /><path clip-path=\"url(#clip910)\" d=\"M 0 0 M2222.86 275.303 Q2226.22 276.021 2228.1 278.289 Q2229.99 280.558 2229.99 283.891 Q2229.99 289.007 2226.48 291.808 Q2222.96 294.609 2216.48 294.609 Q2214.3 294.609 2211.98 294.169 Q2209.69 293.752 2207.24 292.896 L2207.24 288.382 Q2209.18 289.516 2211.5 290.095 Q2213.81 290.674 2216.34 290.674 Q2220.73 290.674 2223.03 288.938 Q2225.34 287.201 2225.34 283.891 Q2225.34 280.836 2223.19 279.123 Q2221.06 277.387 2217.24 277.387 L2213.21 277.387 L2213.21 273.544 L2217.42 273.544 Q2220.87 273.544 2222.7 272.178 Q2224.53 270.79 2224.53 268.197 Q2224.53 265.535 2222.63 264.123 Q2220.76 262.688 2217.24 262.688 Q2215.32 262.688 2213.12 263.104 Q2210.92 263.521 2208.28 264.401 L2208.28 260.234 Q2210.94 259.493 2213.26 259.123 Q2215.6 258.753 2217.66 258.753 Q2222.98 258.753 2226.08 261.183 Q2229.18 263.59 2229.18 267.711 Q2229.18 270.581 2227.54 272.572 Q2225.9 274.54 2222.86 275.303 Z\" fill=\"#000000\" fill-rule=\"evenodd\" fill-opacity=\"1\" /></svg>\n"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"proj = projection(p) # get principle component\n",
"x = sample[1, :]\n",
"y = sample[2, :]\n",
"\n",
"scatter(x, y)\n",
"first_pca = proj[:, 2] # principle components are sorted in descending order\n",
"second_pca = proj[:, 1]\n",
"plot!([-2, 2], [(2 * first_pca[1] / first_pca[2]), (-2 * first_pca[1] / first_pca[2])])\n",
"plot!([-2, 2], [(2 * second_pca[1] / second_pca[2]), (-2 * second_pca[1] / second_pca[2])])\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Julia 1.5.1",
"language": "julia",
"name": "julia-1.5"
},
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.5.1"
}
},
"nbformat": 4,
"nbformat_minor": 4
}