Выполненная лабораторная работа №2

wrldon 4 недель назад
Сommit 98cbf318ff

Различия файлов скрыты, потому что одна или несколько строк слишком длинны

@ -0,0 +1,4 @@
8.1 8.5
7.2 8.0
9.0 8.0
8.5 9.5

Двоичные данные
__pycache__/lab02_lib.cpython-312.pyc

Двоичный файл не отображается.

Двоичные данные
ae1_EDCA.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 94 KiB

Двоичные данные
ae1_EDCA1.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 105 KiB

Двоичные данные
ae1_ae2.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 20 KiB

Двоичные данные
ae1_ae2_test.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 21 KiB

Двоичные данные
ae1_class.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 33 KiB

Двоичные данные
ae1_test.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 34 KiB

Двоичные данные
ae1_training.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 55 KiB

Двоичные данные
ae2_EDCA.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 64 KiB

Двоичные данные
ae2_EDCA1.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 73 KiB

Двоичные данные
ae2_class.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 31 KiB

Двоичные данные
ae2_test.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 40 KiB

Двоичные данные
ae2_training.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 102 KiB

Двоичные данные
ae3_test.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 57 KiB

Двоичные данные
ae3_training.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 84 KiB

@ -0,0 +1,109 @@
2.165463900000000053e-01 -6.546517800000000165e-01 -2.036404900000000073e-01 2.034008599999999944e+00 2.385968699999999831e+00 -6.140064399999999728e-02 3.200971200000000128e+00 -1.112015200000000092e+00 5.159934400000000032e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 2.015500100000000128e+00 -1.439841399999999938e+00 1.964730400000000099e+00 2.786245700000000158e-01 3.865805400000000169e+00 -3.606048100000000201e+00 -1.658481099999999930e+00 -2.044421400000000055e+00 4.987466999999999651e+00 -4.932939700000000260e-01
2.165463900000000053e-01 -5.653378999999999488e-01 -2.036404900000000073e-01 2.778793499999999916e+00 2.051602599999999832e+00 -6.140064399999999728e-02 4.372112699999999741e+00 -9.325388300000000408e-01 5.623183000000000042e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 2.015500100000000128e+00 -1.439841399999999938e+00 1.964730400000000099e+00 6.226310299999999742e-01 3.865805400000000169e+00 -3.906626000000000154e+00 -1.658481099999999930e+00 -2.113388699999999787e+00 6.490482000000000085e+00 -4.932939700000000260e-01
-3.125388000000000055e-01 -9.199884400000000184e-01 6.965369199999999594e+00 -7.104097199999999390e-02 4.354484899999999659e-02 -6.140064399999999728e-02 5.285028299999999568e+00 -8.727133700000000438e-01 7.590724599999999489e-01 -4.204873499999999820e-01 4.874045800000000039e-02 1.433020200000000077e+00 -1.297293599999999936e+00 9.747052600000000178e-01 3.030676300000000101e+00 -4.882788900000000210e-01 -4.199225699999999950e-01 -1.850025400000000042e+00 -1.147847099999999898e+00 3.918656299999999870e+00 -4.932939700000000260e-01
-4.183558299999999841e-01 -9.199884400000000184e-01 6.834588300000000061e+00 -5.695920399999999661e-01 3.073559799999999731e-01 -6.140064399999999728e-02 4.776187700000000369e+00 -6.334115099999999554e-01 1.222321100000000049e+00 -4.204873499999999820e-01 -7.172275099999999570e-01 1.883118300000000023e+00 -1.297293599999999936e+00 1.909729000000000010e+00 2.342663400000000173e+00 9.630825400000000425e-01 -3.666163699999999803e+00 -2.169265799999999800e+00 -2.389257699999999929e+00 4.252659600000000317e+00 -2.126605500000000148e+00
-9.474410199999999671e-01 -9.199884400000000184e-01 -2.036404900000000073e-01 8.098599499999999951e-01 7.405433699999999786e-02 -6.140064399999999728e-02 3.586204599999999854e+00 -1.112015200000000092e+00 3.306939900000000154e+00 -4.204873499999999820e-01 1.904085100000000086e+00 1.909594599999999920e+00 -1.439841399999999938e+00 1.744724799999999965e+00 1.310643999999999920e+00 9.630825400000000425e-01 -6.002693000000000056e-01 -1.786177300000000079e+00 -1.630617900000000065e+00 3.217249300000000201e+00 -4.932939700000000260e-01
4.912314699999999895e-03 -9.199884400000000184e-01 6.242462399999999967e+00 -3.778152200000000072e-01 4.855851999999999946e-01 -6.140064399999999728e-02 5.685267299999999580e+00 -5.735860400000000192e-01 1.453945400000000054e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 1.883118300000000023e+00 -1.297293599999999936e+00 1.909729000000000010e+00 1.654650399999999966e+00 2.414444000000000035e+00 -3.666163699999999803e+00 -2.743898600000000076e+00 -4.044471800000000172e+00 2.783044900000000155e+00 -2.126605500000000148e+00
4.912314699999999895e-03 -9.199884400000000184e-01 6.078098400000000012e+00 -9.221169799999999750e-01 -2.026570700000000086e-02 -6.140064399999999728e-02 6.488522699999999865e+00 -4.539351099999999750e-01 9.906967700000000043e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 9.829221200000000103e-01 -1.297293599999999936e+00 3.968151000000000317e-02 2.786245700000000158e-01 9.630825400000000425e-01 -3.666163699999999803e+00 -2.935442800000000130e+00 -4.113439099999999904e+00 2.181838899999999803e+00 -2.126605500000000148e+00
1.107293500000000042e-01 -9.199884400000000184e-01 7.394861299999999638e+00 -1.786230199999999935e-01 -6.446275900000000315e-03 -6.140064399999999728e-02 3.175601499999999966e+00 -1.590619000000000005e+00 1.453945400000000054e+00 -4.204873499999999820e-01 2.261536800000000014e+00 8.770166900000000432e-01 -8.340133899999999656e-01 5.346940799999999605e-01 -6.538189499999999543e-02 -4.882788900000000210e-01 -1.261540600000000012e+00 -8.284559599999999913e-01 -1.078879900000000003e+00 9.126262600000000225e-01 -4.932939700000000260e-01
-1.009047200000000033e-01 -7.090911399999999531e-01 7.585824800000000145e+00 -4.691003599999999940e-01 4.007486699999999735e-01 -6.140064399999999728e-02 2.487126700000000135e+00 -9.325388300000000408e-01 6.432603000000000071e-01 -4.204873499999999820e-01 -1.934558299999999953e-02 9.829221200000000103e-01 -1.297293599999999936e+00 3.968151000000000317e-02 3.374682700000000146e+00 -4.882788900000000210e-01 -4.199225699999999950e-01 -1.339240699999999951e+00 -5.961090999999999474e-01 2.749644599999999883e+00 1.140017499999999906e+00
-1.009047200000000033e-01 -9.199884400000000184e-01 6.856868600000000313e+00 -5.412246600000000241e-01 3.337194099999999941e-01 -6.140064399999999728e-02 2.316181199999999940e+00 -6.334115099999999554e-01 8.748846200000000017e-01 -4.204873499999999820e-01 -7.512705299999999919e-01 1.433020200000000077e+00 -1.297293599999999936e+00 9.747052600000000178e-01 1.998656900000000070e+00 9.630825400000000425e-01 -3.666163699999999803e+00 -2.169265799999999800e+00 -2.389257699999999929e+00 4.252659600000000317e+00 -2.126605500000000148e+00
-2.067217600000000044e-01 -9.199884400000000184e-01 7.093301099999999693e+00 -5.184923999999999644e-01 3.548458199999999785e-01 -6.140064399999999728e-02 5.018415400000000304e+00 -9.325388300000000408e-01 8.748846200000000017e-01 -4.204873499999999820e-01 -7.041011499999999534e-02 1.644831099999999990e+00 -1.297293599999999936e+00 1.414716400000000096e+00 3.030676300000000101e+00 -4.882788900000000210e-01 -4.199225699999999950e-01 -1.722329199999999894e+00 -1.009912600000000049e+00 3.618053300000000139e+00 -4.932939700000000260e-01
-1.009047200000000033e-01 -9.199884400000000184e-01 6.600593299999999886e+00 -1.051022399999999912e+00 -1.400649300000000042e-01 -6.140064399999999728e-02 2.494063399999999930e+00 9.818760600000000505e-01 5.274481500000000045e-01 -4.204873499999999820e-01 6.955578500000000330e-01 1.433020200000000077e+00 -1.226019699999999935e+00 1.084708100000000064e+00 2.342663400000000173e+00 -4.882788900000000210e-01 -1.193446900000000033e-01 -8.284559599999999913e-01 -3.892073400000000127e-01 1.213229300000000066e+00 -4.932939700000000260e-01
-1.009047200000000033e-01 -9.199884400000000184e-01 7.711561900000000414e+00 -1.635871099999999911e+00 -6.835984699999999581e-01 -6.140064399999999728e-02 5.538793799999999656e+00 2.118559900000000162e+00 -1.325546300000000066e+00 -4.204873499999999820e-01 -1.044531399999999999e-01 -6.586120500000000044e-01 1.994578700000000093e-01 -1.060346400000000022e+00 -4.093883600000000067e-01 -4.882788900000000210e-01 -1.682349700000000059e+00 -5.092155200000000326e-01 -5.961090999999999474e-01 8.124252600000000379e-01 1.140017499999999906e+00
-2.067217600000000044e-01 -9.199884400000000184e-01 7.089064900000000335e+00 -1.635871099999999911e+00 -6.835984699999999581e-01 -6.140064399999999728e-02 4.935133699999999735e+00 2.118559900000000162e+00 -1.325546300000000066e+00 -4.204873499999999820e-01 -1.384961600000000070e-01 -6.586120500000000044e-01 1.994578700000000093e-01 -1.060346400000000022e+00 -4.093883600000000067e-01 -4.882788900000000210e-01 -1.682349700000000059e+00 -6.369116900000000303e-01 -1.009912600000000049e+00 6.120232599999999579e-01 1.140017499999999906e+00
-2.067217600000000044e-01 -9.199884400000000184e-01 7.237258899999999606e+00 -1.635871099999999911e+00 -6.835984699999999581e-01 -6.140064399999999728e-02 8.587321700000000391e+00 2.118559900000000162e+00 -1.325546300000000066e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 -1.188139199999999951e+00 5.914642100000000458e-01 -1.555358999999999936e+00 -1.097401300000000024e+00 -4.882788900000000210e-01 -1.682349700000000059e+00 -8.284559599999999913e-01 -1.147847099999999898e+00 7.761792400000000480e-02 -2.126605500000000148e+00
-4.183558299999999841e-01 -9.199884400000000184e-01 2.030279600000000073e-01 -5.706745500000000026e-01 3.063499399999999873e-01 -6.140064399999999728e-02 4.771056299999999695e+00 -9.325388300000000408e-01 8.748846200000000017e-01 -4.204873499999999820e-01 -1.725391799999999864e-01 1.883118300000000023e+00 -1.297293599999999936e+00 1.909729000000000010e+00 3.374682700000000146e+00 -4.882788900000000210e-01 -4.199225699999999950e-01 -1.658481099999999930e+00 -8.719781199999999677e-01 3.517852299999999932e+00 -4.932939700000000260e-01
-4.183558299999999841e-01 -9.199884400000000184e-01 1.867770699999999895e-01 -4.214977300000000149e-01 6.879286399999999524e-02 -6.140064399999999728e-02 5.478199199999999713e+00 -8.727133700000000438e-01 7.590724599999999489e-01 -4.204873499999999820e-01 6.576196900000000345e-02 1.433020200000000077e+00 -1.297293599999999936e+00 9.747052600000000178e-01 2.686669800000000219e+00 -4.882788900000000210e-01 -4.199225699999999950e-01 -1.850025400000000042e+00 -1.147847099999999898e+00 3.785054900000000000e+00 -4.932939700000000260e-01
-4.183558299999999841e-01 -9.199884400000000184e-01 3.201495300000000155e-01 -5.497234699999999918e-01 3.258209799999999823e-01 -6.140064399999999728e-02 4.870370699999999609e+00 -6.334115099999999554e-01 1.106508899999999906e+00 -4.204873499999999820e-01 -7.853135500000000269e-01 1.883118300000000023e+00 -1.297293599999999936e+00 1.909729000000000010e+00 2.342663400000000173e+00 9.630825400000000425e-01 -3.666163699999999803e+00 -2.233113900000000207e+00 -3.492733799999999889e+00 4.119058299999999839e+00 -2.126605500000000148e+00
-4.183558299999999841e-01 -9.199884400000000184e-01 3.852575100000000252e-01 -3.333030000000000159e-01 5.269529699999999650e-01 -6.140064399999999728e-02 5.896268599999999971e+00 -5.137605800000000222e-01 1.338133199999999912e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 1.221209299999999942e+00 -1.297293599999999936e+00 5.346940799999999605e-01 1.310643999999999920e+00 2.414444000000000035e+00 -3.666163699999999803e+00 -2.680050500000000113e+00 -3.975504599999999833e+00 2.916646300000000025e+00 -2.126605500000000148e+00
4.912314699999999895e-03 -9.199884400000000184e-01 -2.036404900000000073e-01 6.278152299999999464e-01 -6.835984699999999581e-01 1.585204200000000085e+01 1.510130500000000042e+00 -7.530624399999999996e-01 -1.674247799999999953e-01 -4.204873499999999820e-01 9.168374900000000327e-01 4.533949700000000083e-01 -1.083471999999999991e+00 -7.303380499999999609e-01 -1.097401300000000024e+00 9.630825400000000425e-01 -2.223389899999999919e+00 -1.083848300000000098e+00 -8.030108700000000432e-01 1.714234299999999989e+00 1.140017499999999906e+00
4.912314699999999895e-03 -9.199884400000000184e-01 -2.036404900000000073e-01 1.259323799999999993e+00 -1.454642800000000014e-01 -6.140064399999999728e-02 2.466523399999999810e+00 -8.727133700000000438e-01 2.958238400000000046e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 4.269186099999999762e-01 -1.083471999999999991e+00 -7.853394399999999997e-01 -4.093883600000000067e-01 -4.882788900000000210e-01 -2.223389899999999919e+00 -1.850025400000000042e+00 -2.389257699999999929e+00 4.116212599999999888e-01 -4.932939700000000260e-01
4.912314699999999895e-03 -9.199884400000000184e-01 -2.036404900000000073e-01 2.304856099999999852e+00 -2.258054300000000014e-01 -6.140064399999999728e-02 -2.782949499999999854e-01 -7.530624399999999996e-01 -1.674247799999999953e-01 -4.204873499999999820e-01 1.018966599999999945e+00 4.269186099999999762e-01 -1.083471999999999991e+00 -7.853394399999999997e-01 -7.533948200000000206e-01 3.865805400000000169e+00 -2.223389899999999919e+00 -1.020000199999999912e+00 -8.030108700000000432e-01 1.346830600000000100e+00 1.140017499999999906e+00
-2.323062499999999808e+00 -1.069149800000000067e-01 -1.697457099999999941e-01 6.132577799999999746e-01 1.667926900000000101e+00 -6.140064399999999728e-02 2.387091299999999805e+00 1.400654300000000019e+00 1.917194000000000065e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 1.565401999999999960e+00 -1.083471999999999991e+00 1.579720599999999919e+00 1.310643999999999920e+00 -4.882788900000000210e-01 -2.704314500000000177e+00 -3.190835199999999983e+00 -2.872028499999999873e+00 7.122242600000000534e-01 -2.126605500000000148e+00
-2.323062499999999808e+00 2.038597400000000115e-01 -2.036404900000000073e-01 1.472924799999999923e+00 1.483288600000000068e+00 -6.140064399999999728e-02 3.405861300000000202e+00 1.400654300000000019e+00 1.801381899999999980e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 1.565401999999999960e+00 -1.083471999999999991e+00 1.579720599999999919e+00 9.666375000000000384e-01 -4.882788900000000210e-01 -2.704314500000000177e+00 -2.935442800000000130e+00 -2.872028499999999873e+00 6.788239299999999643e-01 -2.126605500000000148e+00
-2.323062499999999808e+00 -4.350371599999999783e-02 -1.671022699999999972e-01 7.886664300000000294e-01 1.569663599999999937e+00 -6.140064399999999728e-02 2.594963900000000212e+00 1.400654300000000019e+00 1.801381899999999980e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 1.565401999999999960e+00 -1.083471999999999991e+00 1.579720599999999919e+00 6.226310299999999742e-01 -4.882788900000000210e-01 -2.704314500000000177e+00 -3.126987100000000019e+00 -2.940995800000000049e+00 8.124252600000000379e-01 -2.126605500000000148e+00
-2.323062499999999808e+00 -4.884767700000000046e-01 -1.316864000000000090e-01 -1.039045999999999914e+00 2.089721200000000056e+00 -6.140064399999999728e-02 2.550835199999999858e+00 1.400654300000000019e+00 2.033006199999999986e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 1.327114799999999928e+00 -9.765611499999999889e-01 1.249712200000000051e+00 6.226310299999999742e-01 9.630825400000000425e-01 -2.704314500000000177e+00 -3.510075599999999962e+00 -2.940995800000000049e+00 6.120232599999999579e-01 -2.126605500000000148e+00
-2.323062499999999808e+00 1.281601300000000110e-01 -1.599460799999999905e-01 1.762508700000000039e-01 2.010976100000000155e+00 -6.140064399999999728e-02 1.439705299999999966e+00 1.340828799999999932e+00 2.148818299999999848e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 1.485972899999999930e+00 -9.765611499999999889e-01 1.579720599999999919e+00 2.786245700000000158e-01 -4.882788900000000210e-01 -2.884661200000000036e+00 -3.063139000000000056e+00 -2.734093999999999802e+00 1.280029899999999943e+00 -2.126605500000000148e+00
-2.323062499999999808e+00 -1.101699000000000012e-01 -1.698813999999999880e-01 6.042540499999999870e-01 1.398278600000000038e+00 -6.140064399999999728e-02 2.376421300000000070e+00 1.400654300000000019e+00 1.917194000000000065e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 1.565401999999999960e+00 -1.083471999999999991e+00 1.579720599999999919e+00 1.310643999999999920e+00 -4.882788900000000210e-01 -2.704314500000000177e+00 -3.254683299999999946e+00 -2.872028499999999873e+00 7.122242600000000534e-01 -2.126605500000000148e+00
-1.009047200000000033e-01 -9.199884400000000184e-01 -1.466606299999999863e-01 -6.906291300000000355e-01 1.951804700000000059e+00 -6.140064399999999728e-02 4.202435600000000271e+00 1.340828799999999932e+00 2.958238400000000046e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 -1.555612500000000120e-01 -4.420070500000000124e-01 -1.005344999999999933e+00 9.666375000000000384e-01 -4.882788900000000210e-01 -9.008471799999999696e-01 -1.083848300000000098e+00 -1.147847099999999898e+00 -1.895847400000000016e-01 -4.932939700000000260e-01
2.165463900000000053e-01 -9.199884400000000184e-01 -2.036404900000000073e-01 1.617520000000000069e+00 1.332110399999999917e+00 -6.140064399999999728e-02 2.292046599999999934e+00 1.161352500000000010e+00 6.419952900000000517e-02 -4.204873499999999820e-01 -7.512705299999999919e-01 -1.026085399999999981e-01 -2.638223499999999833e-01 -6.203352500000000047e-01 2.786245700000000158e-01 -4.882788900000000210e-01 6.100204299999999885e-02 -8.923040399999999650e-01 -8.719781199999999677e-01 9.794269300000000289e-01 1.140017499999999906e+00
2.165463900000000053e-01 -4.261098400000000175e-01 -1.624636299999999978e-01 -1.635871099999999911e+00 -4.876827799999999824e-02 -6.140064399999999728e-02 6.197760999999999854e+00 1.101526999999999923e+00 6.419952900000000517e-02 -4.204873499999999820e-01 -1.398087899999999939e+00 6.916821899999999745e-01 -6.914656300000000533e-01 3.696898900000000210e-01 -6.538189499999999543e-02 9.630825400000000425e-01 -2.824545599999999990e+00 -1.786177300000000079e+00 -2.182355999999999963e+00 1.714234299999999989e+00 -2.126605500000000148e+00
2.165463900000000053e-01 2.937676100000000123e-01 -1.699084100000000097e-01 -1.076287900000000075e+00 3.565073200000000164e-01 -6.140064399999999728e-02 5.026890100000000139e+00 1.041701500000000058e+00 6.419952900000000517e-02 -4.204873499999999820e-01 -1.398087899999999939e+00 1.035874799999999984e+00 -6.914656300000000533e-01 1.084708100000000064e+00 -6.538189499999999543e-02 -4.882788900000000210e-01 -2.824545599999999990e+00 -1.275392599999999987e+00 -1.837519700000000089e+00 4.252659600000000317e+00 -2.126605500000000148e+00
2.165463900000000053e-01 1.454575200000000068e-01 -1.740301599999999893e-01 -1.144663900000000067e+00 6.859228299999999834e-01 -6.140064399999999728e-02 4.378644200000000097e+00 9.220505900000000032e-01 1.800116800000000072e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 1.035874799999999984e+00 -6.914656300000000533e-01 1.084708100000000064e+00 9.666375000000000384e-01 -4.882788900000000210e-01 -2.824545599999999990e+00 -9.561521299999999890e-01 -1.630617900000000065e+00 5.822475299999999798e+00 -2.126605500000000148e+00
2.165463900000000053e-01 1.890722699999999867e-01 -1.805236600000000025e-01 -1.252384799999999965e+00 3.855892300000000050e-01 -6.140064399999999728e-02 5.175225900000000046e+00 9.818760600000000505e-01 4.116359900000000072e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 1.168256600000000089e+00 -8.696503300000000269e-01 1.084708100000000064e+00 6.226310299999999742e-01 -4.882788900000000210e-01 -2.884661200000000036e+00 -1.339240699999999951e+00 -1.768552399999999913e+00 5.388270999999999589e+00 -2.126605500000000148e+00
2.165463900000000053e-01 3.422228799999999654e-02 -1.771215600000000112e-01 -1.195947199999999988e+00 1.340947700000000020e-01 -6.140064399999999728e-02 5.977819399999999561e+00 1.041701500000000058e+00 4.116359900000000072e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 1.168256600000000089e+00 -8.696503300000000269e-01 1.084708100000000064e+00 2.786245700000000158e-01 -4.882788900000000210e-01 -2.884661200000000036e+00 -1.722329199999999894e+00 -2.044421400000000055e+00 3.584652900000000031e+00 -2.126605500000000148e+00
2.165463900000000053e-01 -1.571955399999999947e-01 -2.036404900000000073e-01 -1.635871099999999911e+00 -6.835984699999999581e-01 -6.140064399999999728e-02 7.223380699999999877e+00 1.161352500000000010e+00 2.958238400000000046e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 1.062351199999999940e+00 -8.696503300000000269e-01 8.647024700000000008e-01 6.226310299999999742e-01 9.630825400000000425e-01 -2.884661200000000036e+00 -2.041569599999999873e+00 -2.389257699999999929e+00 2.248639600000000183e+00 -2.126605500000000148e+00
2.165463900000000053e-01 -1.513992399999999905e-01 -2.036404900000000073e-01 -1.635871099999999911e+00 -6.835984699999999581e-01 -6.140064399999999728e-02 7.280384299999999698e+00 1.221177900000000038e+00 4.116359900000000072e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 1.062351199999999940e+00 -8.696503300000000269e-01 8.647024700000000008e-01 1.310643999999999920e+00 9.630825400000000425e-01 -2.884661200000000036e+00 -2.105417699999999837e+00 -2.458225000000000104e+00 2.081637900000000041e+00 -2.126605500000000148e+00
2.165463900000000053e-01 5.884707200000000027e-02 -2.036404900000000073e-01 -1.635871099999999911e+00 -2.642009699999999794e-01 -6.140064399999999728e-02 6.139267499999999878e+00 1.161352500000000010e+00 5.274481500000000045e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 1.221209299999999942e+00 -8.696503300000000269e-01 1.194710799999999962e+00 1.654650399999999966e+00 -4.882788900000000210e-01 -2.884661200000000036e+00 -1.850025400000000042e+00 -2.113388699999999787e+00 2.950046599999999852e+00 -2.126605500000000148e+00
-1.264892099999999964e+00 -9.199884400000000184e-01 -2.036404900000000073e-01 -4.648681900000000145e-01 3.306762800000000002e+00 -6.140064399999999728e-02 -2.782949499999999854e-01 8.622251300000000063e-01 1.800116800000000072e-01 -4.204873499999999820e-01 2.700200899999999904e-01 2.945368300000000272e-01 -7.627395099999999539e-01 -5.653338599999999659e-01 -6.538189499999999543e-02 9.630825400000000425e-01 -2.704314500000000177e+00 -1.658481099999999930e+00 -2.044421400000000055e+00 1.380230899999999927e+00 -4.932939700000000260e-01
-1.264892099999999964e+00 -9.199884400000000184e-01 -2.036404900000000073e-01 -3.897682399999999880e-01 3.562676699999999919e+00 -6.140064399999999728e-02 -2.782949499999999854e-01 8.622251300000000063e-01 1.800116800000000072e-01 -4.204873499999999820e-01 4.912997299999999901e-01 2.415841099999999908e-01 -7.627395099999999539e-01 -6.753366499999999828e-01 -6.538189499999999543e-02 9.630825400000000425e-01 -2.704314500000000177e+00 -1.722329199999999894e+00 -2.113388699999999787e+00 1.179828899999999958e+00 -4.932939700000000260e-01
-1.264892099999999964e+00 -9.199884400000000184e-01 -2.036404900000000073e-01 -8.835101600000000444e-02 3.151599899999999899e+00 -6.140064399999999728e-02 -2.782949499999999854e-01 8.622251300000000063e-01 1.800116800000000072e-01 -4.204873499999999820e-01 4.402351999999999932e-01 2.415841099999999908e-01 -7.627395099999999539e-01 -6.753366499999999828e-01 -6.538189499999999543e-02 9.630825400000000425e-01 -1.862696399999999919e+00 -1.722329199999999894e+00 -2.044421400000000055e+00 3.448205899999999824e-01 -4.932939700000000260e-01
-1.264892099999999964e+00 -9.199884400000000184e-01 -2.036404900000000073e-01 8.028004199999999244e-03 2.753884000000000221e+00 -6.140064399999999728e-02 -2.782949499999999854e-01 9.220505900000000032e-01 1.800116800000000072e-01 -4.204873499999999820e-01 1.338480099999999895e-01 2.945368300000000272e-01 -7.627395099999999539e-01 -5.653338599999999659e-01 -6.538189499999999543e-02 9.630825400000000425e-01 -3.004892299999999850e+00 -1.786177300000000079e+00 -2.182355999999999963e+00 1.814435299999999973e+00 -4.932939700000000260e-01
-1.264892099999999964e+00 -9.199884400000000184e-01 -2.036404900000000073e-01 4.556897699999999662e-02 2.129187599999999847e+00 -6.140064399999999728e-02 1.315811199999999959e+00 1.041701500000000058e+00 6.419952900000000517e-02 -4.204873499999999820e-01 9.980498899999999673e-02 2.945368300000000272e-01 -7.627395099999999539e-01 -5.653338599999999659e-01 2.786245700000000158e-01 9.630825400000000425e-01 -3.004892299999999850e+00 -1.977721499999999910e+00 -2.458225000000000104e+00 1.447031600000000084e+00 -2.126605500000000148e+00
-1.264892099999999964e+00 -9.199884400000000184e-01 -2.036404900000000073e-01 2.525713199999999881e-01 1.422447299999999970e+00 -6.140064399999999728e-02 1.512061799999999900e+00 1.041701500000000058e+00 6.419952900000000517e-02 -4.204873499999999820e-01 1.849125399999999864e-01 2.945368300000000272e-01 -7.627395099999999539e-01 -5.653338599999999659e-01 -6.538189499999999543e-02 9.630825400000000425e-01 -3.004892299999999850e+00 -2.041569599999999873e+00 -2.665126700000000071e+00 1.447031600000000084e+00 -2.126605500000000148e+00
-1.264892099999999964e+00 -9.199884400000000184e-01 -2.036404900000000073e-01 -7.916692599999999858e-02 1.727626000000000106e+00 -6.140064399999999728e-02 2.181453299999999818e+00 1.161352500000000010e+00 -1.674247799999999953e-01 -4.204873499999999820e-01 3.171894799999999681e-02 2.945368300000000272e-01 -7.627395099999999539e-01 -5.653338599999999659e-01 -4.093883600000000067e-01 9.630825400000000425e-01 -3.004892299999999850e+00 -2.296962000000000170e+00 -3.009962999999999944e+00 9.126262600000000225e-01 -2.126605500000000148e+00
-1.264892099999999964e+00 -9.199884400000000184e-01 -2.036404900000000073e-01 -4.252467900000000273e-02 1.167387100000000011e+00 -6.140064399999999728e-02 3.498174999999999812e+00 1.161352500000000010e+00 -3.990490899999999952e-01 -4.204873499999999820e-01 -1.934558299999999953e-02 2.945368300000000272e-01 -7.627395099999999539e-01 -5.653338599999999659e-01 -7.533948200000000206e-01 9.630825400000000425e-01 -3.004892299999999850e+00 -2.233113900000000207e+00 -2.872028499999999873e+00 7.790249299999999488e-01 -2.126605500000000148e+00
-1.264892099999999964e+00 -9.199884400000000184e-01 -2.036404900000000073e-01 -4.825668000000000180e-01 1.192107599999999934e+00 -6.140064399999999728e-02 2.455209299999999928e+00 1.041701500000000058e+00 -1.674247799999999953e-01 -4.204873499999999820e-01 2.019340500000000038e-01 2.415841099999999908e-01 -7.627395099999999539e-01 -6.753366499999999828e-01 6.226310299999999742e-01 9.630825400000000425e-01 -3.004892299999999850e+00 -2.041569599999999873e+00 -2.458225000000000104e+00 1.179828899999999958e+00 -4.932939700000000260e-01
-1.264892099999999964e+00 -9.199884400000000184e-01 -2.036404900000000073e-01 -1.234333200000000019e+00 1.555435300000000076e+00 -6.140064399999999728e-02 3.528525600000000040e+00 1.161352500000000010e+00 -3.990490899999999952e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 1.621550400000000003e-01 -5.845548099999999803e-01 -5.653338599999999659e-01 -4.093883600000000067e-01 -4.882788900000000210e-01 -3.004892299999999850e+00 -2.169265799999999800e+00 -2.596159500000000175e+00 6.454235900000000470e-01 -2.126605500000000148e+00
-1.264892099999999964e+00 -9.199884400000000184e-01 -2.036404900000000073e-01 -1.023903400000000019e+00 2.444453699999999952e+00 -6.140064399999999728e-02 2.622615500000000210e+00 1.101526999999999923e+00 -1.674247799999999953e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 2.415841099999999908e-01 -7.627395099999999539e-01 -6.753366499999999828e-01 6.226310299999999742e-01 -4.882788900000000210e-01 -1.742465200000000047e+00 -2.105417699999999837e+00 -2.458225000000000104e+00 1.778189199999999914e-01 -4.932939700000000260e-01
-1.264892099999999964e+00 -9.199884400000000184e-01 -2.036404900000000073e-01 -9.064873300000000356e-01 2.027834799999999937e+00 -6.140064399999999728e-02 3.179202999999999779e+00 1.161352500000000010e+00 -1.674247799999999953e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 8.272596499999999853e-02 -7.627395099999999539e-01 -1.005344999999999933e+00 1.310643999999999920e+00 -4.882788900000000210e-01 -3.004892299999999850e+00 -2.233113900000000207e+00 -2.527192200000000000e+00 5.786229299999999798e-01 -4.932939700000000260e-01
-1.264892099999999964e+00 -9.199884400000000184e-01 -2.036404900000000073e-01 -1.969948700000000164e-02 2.620804199999999806e+00 -6.140064399999999728e-02 2.786160300000000145e+00 1.161352500000000010e+00 2.958238400000000046e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 9.829221200000000103e-01 -9.765611499999999889e-01 5.346940799999999605e-01 1.998656900000000070e+00 9.630825400000000425e-01 -3.004892299999999850e+00 -2.616202400000000150e+00 -2.389257699999999929e+00 7.456245999999999707e-01 -2.126605500000000148e+00
-1.264892099999999964e+00 -9.199884400000000184e-01 -2.036404900000000073e-01 -7.801124600000000631e-02 2.212019000000000180e+00 -6.140064399999999728e-02 2.183279399999999981e+00 1.101526999999999923e+00 6.432603000000000071e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 1.433020200000000077e+00 -9.765611499999999889e-01 1.469717799999999963e+00 2.686669800000000219e+00 2.414444000000000035e+00 -1.742465200000000047e+00 -2.552354300000000187e+00 -2.113388699999999787e+00 5.118222599999999733e-01 -2.126605500000000148e+00
-1.264892099999999964e+00 -9.199884400000000184e-01 -2.036404900000000073e-01 -2.033510400000000107e-01 2.359426099999999860e+00 -6.140064399999999728e-02 1.661869199999999935e+00 1.041701500000000058e+00 5.274481500000000045e-01 -4.204873499999999820e-01 -7.342490200000000300e-01 1.433020200000000077e+00 -9.765611499999999889e-01 1.469717799999999963e+00 1.998656900000000070e+00 9.630825400000000425e-01 -1.742465200000000047e+00 -2.424658099999999816e+00 -2.182355999999999963e+00 5.452225899999999514e-01 -2.126605500000000148e+00
-1.264892099999999964e+00 -9.199884400000000184e-01 -2.036404900000000073e-01 2.009261999999999854e-02 2.394366100000000053e+00 -6.140064399999999728e-02 2.861610999999999905e+00 1.161352500000000010e+00 2.958238400000000046e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 9.829221200000000103e-01 -9.765611499999999889e-01 5.346940799999999605e-01 1.998656900000000070e+00 9.630825400000000425e-01 -3.004892299999999850e+00 -2.552354300000000187e+00 -2.458225000000000104e+00 7.122242600000000534e-01 -2.126605500000000148e+00
-1.159075099999999914e+00 -9.199884400000000184e-01 -1.692480700000000005e-01 -1.065333499999999933e+00 4.088501899999999800e+00 -6.140064399999999728e-02 -2.782949499999999854e-01 9.818760600000000505e-01 6.432603000000000071e-01 -4.204873499999999820e-01 -5.640339199999999664e-01 6.387294799999999606e-01 -1.012198099999999990e+00 -2.353254700000000088e-01 1.310643999999999920e+00 -4.882788900000000210e-01 -1.321656200000000059e+00 -2.105417699999999837e+00 -2.113388699999999787e+00 1.280029899999999943e+00 -4.932939700000000260e-01
-1.159075099999999914e+00 -9.199884400000000184e-01 -1.836570299999999989e-01 -3.098444300000000040e-01 2.705371799999999993e+00 1.392131099999999932e+01 -2.782949499999999854e-01 1.281003399999999903e+00 7.590724599999999489e-01 -4.204873499999999820e-01 -3.087112599999999873e-01 8.240639800000000292e-01 -1.261656700000000075e+00 -2.353254700000000088e-01 9.666375000000000384e-01 -4.882788900000000210e-01 -4.147088300000000061e+00 -3.063139000000000056e+00 -3.078930300000000120e+00 2.950046599999999852e+00 -2.126605500000000148e+00
-1.159075099999999914e+00 -9.199884400000000184e-01 -1.819506200000000073e-01 -5.564280799999999916e-01 2.994759199999999844e+00 1.511530800000000063e+01 -2.782949499999999854e-01 1.340828799999999932e+00 7.590724599999999489e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 7.446349100000000387e-01 -1.261656700000000075e+00 -4.003296700000000263e-01 -6.538189499999999543e-02 9.630825400000000425e-01 -4.147088300000000061e+00 -3.318531399999999909e+00 -3.423766500000000157e+00 2.282039900000000010e+00 -2.126605500000000148e+00
-1.159075099999999914e+00 -9.199884400000000184e-01 -1.788082699999999914e-01 1.190056500000000010e-02 3.144823900000000005e+00 1.731405399999999872e+01 -2.782949499999999854e-01 1.281003399999999903e+00 7.590724599999999489e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 7.446349100000000387e-01 -1.261656700000000075e+00 -4.003296700000000263e-01 2.786245700000000158e-01 9.630825400000000425e-01 -4.147088300000000061e+00 -3.190835199999999983e+00 -3.216864800000000191e+00 2.582642900000000186e+00 -2.126605500000000148e+00
-1.159075099999999914e+00 -9.199884400000000184e-01 -1.795185800000000109e-01 -4.353921499999999778e-01 2.663423900000000177e+00 1.681704500000000024e+01 -2.782949499999999854e-01 1.400654300000000019e+00 7.590724599999999489e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 7.446349100000000387e-01 -1.261656700000000075e+00 -4.003296700000000263e-01 -4.093883600000000067e-01 9.630825400000000425e-01 -4.147088300000000061e+00 -3.446227499999999999e+00 -3.768602800000000030e+00 2.081637900000000041e+00 -2.126605500000000148e+00
-1.159075099999999914e+00 -9.199884400000000184e-01 -2.036404900000000073e-01 -2.160894999999999899e-01 2.395199100000000136e+00 1.990038699999999849e+01 -2.782949499999999854e-01 1.520305199999999912e+00 5.274481500000000045e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 7.446349100000000387e-01 -1.261656700000000075e+00 -4.003296700000000263e-01 6.226310299999999742e-01 2.414444000000000035e+00 -4.147088300000000061e+00 -3.637771799999999889e+00 -3.975504599999999833e+00 1.580632899999999896e+00 -2.126605500000000148e+00
6.398145400000000427e-01 -9.199884400000000184e-01 -1.558342500000000075e-01 1.536369600000000002e+00 3.738620000000000054e+00 -6.140064399999999728e-02 3.481048200000000037e+00 9.220505900000000032e-01 1.338133199999999912e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 8.505403400000000058e-01 -1.261656700000000075e+00 -1.803240799999999977e-01 1.310643999999999920e+00 2.414444000000000035e+00 -1.141309499999999977e+00 -2.169265799999999800e+00 -1.354748899999999923e+00 1.981436900000000056e+00 -4.932939700000000260e-01
6.398145400000000427e-01 -9.199884400000000184e-01 -1.662600800000000045e-01 1.464656699999999923e+00 2.774200099999999836e+00 -6.140064399999999728e-02 2.661191399999999874e+00 7.425741900000000228e-01 1.338133199999999912e+00 -4.204873499999999820e-01 -1.278937400000000002e+00 8.505403400000000058e-01 -1.261656700000000075e+00 -1.803240799999999977e-01 6.226310299999999742e-01 9.630825400000000425e-01 -5.922911000000000148e-02 -1.658481099999999930e+00 -1.009912600000000049e+00 3.350850599999999790e+00 1.140017499999999906e+00
6.398145400000000427e-01 -9.199884400000000184e-01 -2.036404900000000073e-01 1.620549199999999912e+00 3.553331599999999924e+00 -6.140064399999999728e-02 -2.782949499999999854e-01 7.425741900000000228e-01 1.222321100000000049e+00 -4.204873499999999820e-01 -1.278937400000000002e+00 8.505403400000000058e-01 -1.261656700000000075e+00 -1.803240799999999977e-01 6.226310299999999742e-01 9.630825400000000425e-01 -5.922911000000000148e-02 -1.530784900000000004e+00 -9.409453800000000534e-01 3.083647899999999886e+00 1.140017499999999906e+00
6.398145400000000427e-01 -9.199884400000000184e-01 -1.621394100000000116e-01 1.806447200000000031e+00 3.155374699999999866e+00 -6.140064399999999728e-02 2.985229200000000027e+00 8.023996599999999590e-01 1.222321100000000049e+00 -4.204873499999999820e-01 -1.193829800000000052e+00 8.505403400000000058e-01 -1.261656700000000075e+00 -1.803240799999999977e-01 1.310643999999999920e+00 9.630825400000000425e-01 -1.141309499999999977e+00 -1.913873399999999947e+00 -1.216814400000000074e+00 1.847835600000000023e+00 -4.932939700000000260e-01
-2.067217600000000044e-01 -4.007567300000000055e-01 -2.036404900000000073e-01 3.391185999999999812e+00 3.988334599999999952e+00 -6.140064399999999728e-02 -2.782949499999999854e-01 8.622251300000000063e-01 7.590724599999999489e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 1.406543799999999900e+00 -1.439841399999999938e+00 6.996982699999999555e-01 1.310643999999999920e+00 2.414444000000000035e+00 -9.008471799999999696e-01 -2.041569599999999873e+00 -1.492683399999999994e+00 1.948036600000000007e+00 -4.932939700000000260e-01
-2.067217600000000044e-01 -4.964275599999999899e-01 -2.036404900000000073e-01 2.464927499999999938e+00 3.671953400000000034e+00 -6.140064399999999728e-02 -2.782949499999999854e-01 9.818760600000000505e-01 6.432603000000000071e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 1.406543799999999900e+00 -1.439841399999999938e+00 6.996982699999999555e-01 2.786245700000000158e-01 -4.882788900000000210e-01 -9.008471799999999696e-01 -2.233113900000000207e+00 -1.492683399999999994e+00 2.449041600000000152e+00 -4.932939700000000260e-01
-2.067217600000000044e-01 -5.508412299999999595e-01 -2.036404900000000073e-01 2.448678300000000085e+00 3.586908900000000067e+00 -6.140064399999999728e-02 -2.782949499999999854e-01 1.041701500000000058e+00 6.432603000000000071e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 1.406543799999999900e+00 -1.439841399999999938e+00 6.996982699999999555e-01 9.666375000000000384e-01 -4.882788900000000210e-01 -4.567897300000000271e+00 -2.424658099999999816e+00 -1.699585200000000018e+00 8.294100000000000250e+00 -4.932939700000000260e-01
-2.067217600000000044e-01 -5.894448599999999594e-01 -1.760816000000000048e-01 2.478711699999999851e+00 2.715440099999999912e+00 -6.140064399999999728e-02 1.888855699999999915e+00 1.041701500000000058e+00 8.748846200000000017e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 2.306740000000000013e+00 -1.439841399999999938e+00 2.569745800000000191e+00 1.654650399999999966e+00 -4.882788900000000210e-01 -4.567897300000000271e+00 -2.807746700000000040e+00 -1.630617900000000065e+00 7.659493600000000235e+00 -4.932939700000000260e-01
-2.067217600000000044e-01 -5.285552500000000320e-01 -1.710049600000000114e-01 1.612483799999999912e+00 2.335284399999999927e+00 -6.140064399999999728e-02 2.288067700000000038e+00 1.101526999999999923e+00 9.906967700000000043e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 2.306740000000000013e+00 -1.439841399999999938e+00 2.569745800000000191e+00 2.786245700000000158e-01 -4.882788900000000210e-01 -4.567897300000000271e+00 -2.871594700000000167e+00 -1.630617900000000065e+00 7.793095000000000105e+00 -2.126605500000000148e+00
-2.067217600000000044e-01 -4.914022499999999849e-01 -1.679073500000000108e-01 1.328023299999999907e+00 2.070918999999999954e+00 -6.140064399999999728e-02 2.531654800000000094e+00 1.161352500000000010e+00 1.106508899999999906e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 2.306740000000000013e+00 -1.439841399999999938e+00 2.569745800000000191e+00 1.310643999999999920e+00 -4.882788900000000210e-01 -4.567897300000000271e+00 -3.063139000000000056e+00 -1.699585200000000018e+00 7.425691300000000439e+00 -2.126605500000000148e+00
-2.067217600000000044e-01 -4.318304499999999768e-01 -1.629405899999999963e-01 1.064820300000000053e+00 1.826309299999999913e+00 -6.140064399999999728e-02 2.922226799999999791e+00 1.161352500000000010e+00 1.222321100000000049e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 2.306740000000000013e+00 -1.439841399999999938e+00 2.569745800000000191e+00 9.666375000000000384e-01 -4.882788900000000210e-01 -4.567897300000000271e+00 -3.190835199999999983e+00 -1.561650699999999947e+00 7.358890599999999615e+00 -2.126605500000000148e+00
-2.067217600000000044e-01 -9.199884400000000184e-01 -1.536818399999999862e-01 8.504289299999999718e-01 1.627063099999999984e+00 -6.140064399999999728e-02 3.650307600000000097e+00 1.281003399999999903e+00 1.106508899999999906e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 2.306740000000000013e+00 -1.439841399999999938e+00 2.569745800000000191e+00 9.666375000000000384e-01 -4.882788900000000210e-01 -4.567897300000000271e+00 -3.701619899999999852e+00 -1.975454199999999938e+00 5.655473599999999657e+00 -2.126605500000000148e+00
8.514486100000000501e-01 -9.199884400000000184e-01 -4.196450100000000127e-02 5.097702299999999909e-01 -1.850815199999999994e-01 -6.140064399999999728e-02 4.807196900000000106e+00 1.041701500000000058e+00 1.106508899999999906e+00 -2.960067800000000249e-01 -1.347023400000000093e+00 -4.732775499999999913e-01 -1.925484699999999993e-01 -1.280351999999999935e+00 -4.093883600000000067e-01 -4.882788900000000210e-01 -2.996914099999999914e-01 -6.369116900000000303e-01 -4.581745899999999927e-01 -3.231860799999999867e-01 1.140017499999999906e+00
1.107293500000000042e-01 -9.199884400000000184e-01 -1.722676499999999944e-01 4.459118799999999827e-01 2.837618299999999927e-01 -6.140064399999999728e-02 4.655842899999999673e+00 9.220505900000000032e-01 8.748846200000000017e-01 -4.204873499999999820e-01 -5.470124100000000045e-01 8.240639800000000292e-01 -1.083471999999999991e+00 3.968151000000000317e-02 2.786245700000000158e-01 -4.882788900000000210e-01 -2.163274299999999872e+00 -1.850025400000000042e+00 -1.975454199999999938e+00 1.046227599999999924e+00 -4.932939700000000260e-01
1.107293500000000042e-01 -9.199884400000000184e-01 -1.792111100000000068e-01 3.904298299999999777e-01 4.462962999999999791e-01 -6.140064399999999728e-02 3.563814700000000002e+00 1.041701500000000058e+00 5.274481500000000045e-01 -4.204873499999999820e-01 -6.831844900000000331e-01 8.240639800000000292e-01 -1.083471999999999991e+00 3.968151000000000317e-02 -6.538189499999999543e-02 -4.882788900000000210e-01 -4.800381400000000021e-01 -1.594632999999999967e+00 -1.423716200000000098e+00 1.680833900000000103e+00 -4.932939700000000260e-01
1.107293500000000042e-01 -9.199884400000000184e-01 -1.823664700000000027e-01 1.287078000000000111e-01 3.003563000000000205e-01 -6.140064399999999728e-02 3.067558399999999796e+00 9.818760600000000505e-01 9.906967700000000043e-01 -4.204873499999999820e-01 -5.470124100000000045e-01 8.240639800000000292e-01 -1.083471999999999991e+00 3.968151000000000317e-02 -6.538189499999999543e-02 -4.882788900000000210e-01 -4.800381400000000021e-01 -1.913873399999999947e+00 -1.423716200000000098e+00 1.647433600000000053e+00 -4.932939700000000260e-01
1.107293500000000042e-01 -9.199884400000000184e-01 -1.765072199999999925e-01 1.645898199999999978e-01 1.530374700000000088e-01 -6.140064399999999728e-02 3.989067599999999825e+00 9.220505900000000032e-01 1.569757499999999917e+00 -4.204873499999999820e-01 -1.934558299999999953e-02 8.240639800000000292e-01 -1.083471999999999991e+00 3.968151000000000317e-02 2.786245700000000158e-01 -4.882788900000000210e-01 -2.163274299999999872e+00 -2.233113900000000207e+00 -2.044421400000000055e+00 8.124252600000000379e-01 -4.932939700000000260e-01
1.107293500000000042e-01 -9.199884400000000184e-01 -1.794354900000000030e-01 3.718185500000000254e-01 6.274611200000000666e-02 -6.140064399999999728e-02 3.528525600000000040e+00 9.220505900000000032e-01 1.453945400000000054e+00 -4.204873499999999820e-01 -2.324072999999999851e-03 8.240639800000000292e-01 -1.083471999999999991e+00 3.968151000000000317e-02 2.786245700000000158e-01 -4.882788900000000210e-01 -1.021078300000000105e+00 -2.105417699999999837e+00 -1.699585200000000018e+00 1.079627899999999974e+00 -4.932939700000000260e-01
1.107293500000000042e-01 -9.199884400000000184e-01 -1.819951599999999892e-01 5.185819200000000295e-01 -1.617945599999999831e-02 -6.140064399999999728e-02 3.125956200000000074e+00 9.220505900000000032e-01 1.569757499999999917e+00 -4.204873499999999820e-01 -8.743162499999999893e-02 8.240639800000000292e-01 -1.083471999999999991e+00 3.968151000000000317e-02 2.786245700000000158e-01 -4.882788900000000210e-01 -1.021078300000000105e+00 -2.105417699999999837e+00 -1.768552399999999913e+00 1.079627899999999974e+00 -4.932939700000000260e-01
1.107293500000000042e-01 -9.199884400000000184e-01 -1.786018299999999892e-01 4.409670199999999873e-01 -2.975734500000000171e-01 -6.140064399999999728e-02 3.659639299999999817e+00 9.220505900000000032e-01 1.917194000000000065e+00 -4.204873499999999820e-01 2.189555599999999935e-01 8.240639800000000292e-01 -1.083471999999999991e+00 3.968151000000000317e-02 9.666375000000000384e-01 -4.882788900000000210e-01 -2.584083300000000083e+00 -2.233113900000000207e+00 -2.044421400000000055e+00 1.213229300000000066e+00 -4.932939700000000260e-01
1.107293500000000042e-01 -9.199884400000000184e-01 -2.036404900000000073e-01 7.019600499999999466e-01 -2.490622999999999865e-01 -6.140064399999999728e-02 4.154513399999999912e+00 9.220505900000000032e-01 2.033006199999999986e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 8.240639800000000292e-01 -1.083471999999999991e+00 3.968151000000000317e-02 6.226310299999999742e-01 -4.882788900000000210e-01 -2.584083300000000083e+00 -2.488506199999999779e+00 -2.389257699999999929e+00 7.122242600000000534e-01 -4.932939700000000260e-01
1.107293500000000042e-01 -9.199884400000000184e-01 -2.036404900000000073e-01 1.892891099999999938e+00 4.517521499999999773e-02 -6.140064399999999728e-02 3.438903100000000101e+00 9.220505900000000032e-01 1.801381899999999980e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 8.240639800000000292e-01 -1.083471999999999991e+00 3.968151000000000317e-02 2.786245700000000158e-01 -4.882788900000000210e-01 -6.603848700000000127e-01 -2.296962000000000170e+00 -2.182355999999999963e+00 1.981436900000000056e+00 -4.932939700000000260e-01
1.107293500000000042e-01 -9.199884400000000184e-01 -2.036404900000000073e-01 2.550347599999999826e+00 -3.299172300000000058e-01 -6.140064399999999728e-02 3.329692699999999839e+00 9.220505900000000032e-01 1.801381899999999980e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 6.122531199999999840e-01 -1.154745799999999933e+00 -5.103324599999999878e-01 -6.538189499999999543e-02 -4.882788900000000210e-01 -6.603848700000000127e-01 -2.360809999999999853e+00 -2.182355999999999963e+00 1.948036600000000007e+00 -4.932939700000000260e-01
1.107293500000000042e-01 -9.199884400000000184e-01 -2.036404900000000073e-01 1.877137700000000020e+00 4.046818699999999991e-01 -6.140064399999999728e-02 1.572006699999999979e+00 9.220505900000000032e-01 2.148818299999999848e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 1.886314000000000046e-01 -1.154745799999999933e+00 -1.390354799999999891e+00 -7.533948200000000206e-01 -4.882788900000000210e-01 -6.603848700000000127e-01 -2.360809999999999853e+00 -1.768552399999999913e+00 1.814435299999999973e+00 1.140017499999999906e+00
1.107293500000000042e-01 -9.199884400000000184e-01 -2.036404900000000073e-01 1.951201100000000022e+00 4.276256600000000185e-01 -6.140064399999999728e-02 2.555671400000000038e+00 9.220505900000000032e-01 1.801381899999999980e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 7.975876200000000527e-01 -1.154745799999999933e+00 -1.253226799999999919e-01 2.786245700000000158e-01 -4.882788900000000210e-01 -6.603848700000000127e-01 -2.424658099999999816e+00 -2.320290500000000034e+00 2.315440300000000118e+00 -4.932939700000000260e-01
1.107293500000000042e-01 -9.199884400000000184e-01 -2.036404900000000073e-01 1.813760199999999934e+00 3.028448200000000146e-01 -6.140064399999999728e-02 3.495309699999999964e+00 9.818760600000000505e-01 1.569757499999999917e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 8.240639800000000292e-01 -1.190382800000000074e+00 -1.253226799999999919e-01 6.226310299999999742e-01 -4.882788900000000210e-01 -6.603848700000000127e-01 -2.360809999999999853e+00 -2.320290500000000034e+00 2.482441899999999979e+00 -4.932939700000000260e-01
1.107293500000000042e-01 -7.384623500000000451e-01 -2.036404900000000073e-01 1.628029900000000030e+00 4.830671999999999744e-01 -6.140064399999999728e-02 3.292136499999999799e+00 9.220505900000000032e-01 1.569757499999999917e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 1.406543799999999900e+00 -1.190382800000000074e+00 1.084708100000000064e+00 1.310643999999999920e+00 -4.882788900000000210e-01 -6.603848700000000127e-01 -2.233113900000000207e+00 -2.251323199999999858e+00 2.482441899999999979e+00 -4.932939700000000260e-01
1.107293500000000042e-01 -7.555763100000000287e-01 -2.036404900000000073e-01 1.547713799999999917e+00 3.730759799999999737e-01 -6.140064399999999728e-02 4.033461299999999916e+00 9.818760600000000505e-01 1.338133199999999912e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 1.538925600000000005e+00 -1.368567499999999937e+00 1.084708100000000064e+00 9.666375000000000384e-01 -4.882788900000000210e-01 -6.603848700000000127e-01 -2.360809999999999853e+00 -2.389257699999999929e+00 2.916646300000000025e+00 -4.932939700000000260e-01
1.107293500000000042e-01 -9.199884400000000184e-01 -2.036404900000000073e-01 -3.405394900000000002e-01 5.202276700000000309e-01 -6.140064399999999728e-02 5.861965500000000162e+00 1.101526999999999923e+00 5.274481500000000045e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 7.975876200000000527e-01 -1.012198099999999990e+00 9.468290699999999671e-02 2.786245700000000158e-01 -4.882788900000000210e-01 -3.545932500000000154e+00 -2.552354300000000187e+00 -3.078930300000000120e+00 1.781034900000000087e+00 -2.126605500000000148e+00
1.107293500000000042e-01 -5.556284299999999510e-01 -2.036404900000000073e-01 1.387813699999999928e+00 7.214435799999999732e-01 -6.140064399999999728e-02 6.888291500000000234e+00 1.101526999999999923e+00 7.590724599999999489e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 1.565401999999999960e+00 -1.368567499999999937e+00 1.139709499999999931e+00 -6.538189499999999543e-02 -4.882788900000000210e-01 -6.603848700000000127e-01 -2.488506199999999779e+00 -2.734093999999999802e+00 4.219259300000000046e+00 -2.126605500000000148e+00
1.107293500000000042e-01 -6.574070800000000325e-01 -2.036404900000000073e-01 1.269545600000000052e+00 6.664869300000000329e-01 -6.140064399999999728e-02 4.886410099999999979e+00 1.041701500000000058e+00 8.748846200000000017e-01 -4.204873499999999820e-01 -1.398087899999999939e+00 1.565401999999999960e+00 -1.368567499999999937e+00 1.139709499999999931e+00 2.786245700000000158e-01 -4.882788900000000210e-01 -6.603848700000000127e-01 -2.105417699999999837e+00 -1.975454199999999938e+00 3.117048299999999994e+00 -4.932939700000000260e-01
1.107293500000000042e-01 -7.004868300000000048e-01 -2.036404900000000073e-01 2.007249100000000119e+00 7.271353000000000399e-01 -6.140064399999999728e-02 2.599952099999999877e+00 9.818760600000000505e-01 1.453945400000000054e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 1.538925600000000005e+00 -1.368567499999999937e+00 1.084708100000000064e+00 2.786245700000000158e-01 -4.882788900000000210e-01 -6.603848700000000127e-01 -2.360809999999999853e+00 -1.837519700000000089e+00 2.749644599999999883e+00 -4.932939700000000260e-01
1.107293500000000042e-01 -9.199884400000000184e-01 -2.036404900000000073e-01 1.842792999999999903e+00 3.111469399999999830e-01 -6.140064399999999728e-02 3.527069200000000126e+00 9.818760600000000505e-01 1.569757499999999917e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 6.387294799999999606e-01 -1.190382800000000074e+00 -5.103324599999999878e-01 -6.538189499999999543e-02 -4.882788900000000210e-01 -6.603848700000000127e-01 -2.424658099999999816e+00 -2.320290500000000034e+00 2.482441899999999979e+00 -4.932939700000000260e-01
-3.125388000000000055e-01 -9.199884400000000184e-01 -2.036404900000000073e-01 5.692962200000000195e-01 2.595423600000000164e+00 -6.140064399999999728e-02 1.812335900000000111e+00 1.221177900000000038e+00 1.338133199999999912e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 7.181585499999999511e-01 -1.439841399999999938e+00 -7.303380499999999609e-01 1.654650399999999966e+00 2.414444000000000035e+00 -1.862696399999999919e+00 -2.680050500000000113e+00 -1.630617900000000065e+00 -2.563854099999999803e-01 -4.932939700000000260e-01
-3.125388000000000055e-01 -9.199884400000000184e-01 -1.823449799999999899e-01 4.837624799999999947e-01 2.271247499999999864e+00 -6.140064399999999728e-02 1.396321499999999993e+00 1.221177900000000038e+00 1.569757499999999917e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 7.181585499999999511e-01 -1.439841399999999938e+00 -7.303380499999999609e-01 9.666375000000000384e-01 2.414444000000000035e+00 -1.862696399999999919e+00 -2.871594700000000167e+00 -1.699585200000000018e+00 -2.563854099999999803e-01 -4.932939700000000260e-01
-3.125388000000000055e-01 -9.199884400000000184e-01 -1.842095699999999892e-01 2.981724199999999936e-01 2.012528300000000048e+00 -6.140064399999999728e-02 2.777687199999999912e+00 1.221177900000000038e+00 1.569757499999999917e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 7.181585499999999511e-01 -1.439841399999999938e+00 -7.303380499999999609e-01 9.666375000000000384e-01 2.414444000000000035e+00 -1.862696399999999919e+00 -2.999290900000000093e+00 -1.699585200000000018e+00 -2.563854099999999803e-01 -4.932939700000000260e-01
-3.125388000000000055e-01 -9.199884400000000184e-01 -1.857890500000000111e-01 1.409597400000000000e-01 1.793368099999999909e+00 -6.140064399999999728e-02 2.529275399999999951e+00 1.221177900000000038e+00 1.685569700000000060e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 7.181585499999999511e-01 -1.439841399999999938e+00 -7.303380499999999609e-01 6.226310299999999742e-01 2.414444000000000035e+00 -1.862696399999999919e+00 -3.126987100000000019e+00 -1.768552399999999913e+00 -2.897857400000000139e-01 -4.932939700000000260e-01
-3.125388000000000055e-01 -9.199884400000000184e-01 -1.878364800000000001e-01 7.236910100000000234e-01 1.509278200000000014e+00 -6.140064399999999728e-02 3.450049200000000038e+00 1.221177900000000038e+00 1.917194000000000065e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 2.809790800000000033e+00 -1.439841399999999938e+00 3.614772299999999827e+00 1.998656900000000070e+00 9.630825400000000425e-01 -1.862696399999999919e+00 -3.190835199999999983e+00 -1.699585200000000018e+00 -2.229850800000000022e-01 -2.126605500000000148e+00
-3.125388000000000055e-01 -9.199884400000000184e-01 -1.849998599999999882e-01 5.287414299999999567e-01 1.328100400000000070e+00 -6.140064399999999728e-02 4.119239099999999709e+00 1.281003399999999903e+00 1.685569700000000060e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 5.328240400000000543e-01 -1.439841399999999938e+00 -1.115347799999999889e+00 1.310643999999999920e+00 -4.882788900000000210e-01 -1.862696399999999919e+00 -3.063139000000000056e+00 -1.906486899999999984e+00 -3.231860799999999867e-01 -4.932939700000000260e-01
-3.125388000000000055e-01 -9.199884400000000184e-01 -1.843164300000000033e-01 6.081039499999999487e-01 1.103934399999999982e+00 -6.140064399999999728e-02 4.280468599999999846e+00 1.281003399999999903e+00 1.569757499999999917e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 5.328240400000000543e-01 -1.439841399999999938e+00 -1.115347799999999889e+00 6.226310299999999742e-01 -4.882788900000000210e-01 -1.862696399999999919e+00 -3.063139000000000056e+00 -1.837519700000000089e+00 -3.231860799999999867e-01 -4.932939700000000260e-01
-3.125388000000000055e-01 -9.199884400000000184e-01 -1.817479100000000125e-01 5.431914500000000201e-01 1.341529600000000100e+00 -6.140064399999999728e-02 3.164841700000000202e+00 1.281003399999999903e+00 2.033006199999999986e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 5.857767600000000074e-01 -1.439841399999999938e+00 -1.005344999999999933e+00 1.310643999999999920e+00 -4.882788900000000210e-01 -1.862696399999999919e+00 -3.254683299999999946e+00 -1.975454199999999938e+00 -3.565864100000000203e-01 -4.932939700000000260e-01
-3.125388000000000055e-01 -9.199884400000000184e-01 -1.799788099999999891e-01 7.192773000000000083e-01 1.140380500000000019e+00 -6.140064399999999728e-02 3.443074999999999886e+00 1.340828799999999932e+00 2.033006199999999986e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 1.621550400000000003e-01 -8.696503300000000269e-01 -1.005344999999999933e+00 9.666375000000000384e-01 -4.882788900000000210e-01 -1.862696399999999919e+00 -3.382379400000000036e+00 -2.044421400000000055e+00 -3.899867499999999931e-01 -4.932939700000000260e-01
-3.125388000000000055e-01 -9.199884400000000184e-01 -1.810197299999999898e-01 6.156709799999999788e-01 1.060141100000000058e+00 -6.140064399999999728e-02 3.279366599999999909e+00 1.340828799999999932e+00 2.148818299999999848e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 1.459496600000000033e+00 -9.765611499999999889e-01 1.524719200000000052e+00 9.666375000000000384e-01 -4.882788900000000210e-01 -1.862696399999999919e+00 -3.382379400000000036e+00 -2.044421400000000055e+00 -2.229850800000000022e-01 -2.126605500000000148e+00
-4.183558299999999841e-01 -9.199884400000000184e-01 -1.805742399999999970e-01 1.042659299999999956e+00 1.094481700000000002e+00 -6.140064399999999728e-02 3.349429999999999907e+00 1.281003399999999903e+00 1.685569700000000060e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 1.459496600000000033e+00 -9.765611499999999889e-01 1.524719200000000052e+00 6.226310299999999742e-01 9.630825400000000425e-01 -1.982927499999999954e+00 -3.126987100000000019e+00 -1.837519700000000089e+00 -2.258307600000000054e-02 -2.126605500000000148e+00
-4.183558299999999841e-01 -9.199884400000000184e-01 -1.611781499999999923e-01 8.295637099999999542e-01 9.530231700000000306e-01 -6.140064399999999728e-02 3.060819500000000026e+00 1.221177900000000038e+00 1.338133199999999912e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 1.459496600000000033e+00 -9.765611499999999889e-01 1.524719200000000052e+00 6.226310299999999742e-01 -4.882788900000000210e-01 -1.982927499999999954e+00 -2.616202400000000150e+00 -1.561650699999999947e+00 2.446195899999999979e-01 -4.932939700000000260e-01
-4.183558299999999841e-01 -9.199884400000000184e-01 -1.710553999999999963e-01 7.966295399999999693e-01 8.235100100000000145e-01 -6.140064399999999728e-02 3.565299299999999949e+00 1.281003399999999903e+00 1.453945400000000054e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 1.459496600000000033e+00 -9.765611499999999889e-01 1.524719200000000052e+00 -6.538189499999999543e-02 -4.882788900000000210e-01 -1.862696399999999919e+00 -2.807746700000000040e+00 -1.699585200000000018e+00 1.081725700000000026e-02 -4.932939700000000260e-01
-4.183558299999999841e-01 -9.199884400000000184e-01 -1.646348499999999992e-01 9.523956000000000088e-01 1.120470300000000030e+00 -6.140064399999999728e-02 2.788995200000000008e+00 1.221177900000000038e+00 1.222321100000000049e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 1.459496600000000033e+00 -9.765611499999999889e-01 1.524719200000000052e+00 6.226310299999999742e-01 -4.882788900000000210e-01 -1.922811999999999966e+00 -2.488506199999999779e+00 -1.492683399999999994e+00 2.446195899999999979e-01 -4.932939700000000260e-01
-4.183558299999999841e-01 -9.199884400000000184e-01 -1.509341100000000102e-01 6.957258400000000398e-01 1.212427700000000108e+00 -6.140064399999999728e-02 2.484822299999999817e+00 1.221177900000000038e+00 1.222321100000000049e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 1.459496600000000033e+00 -9.765611499999999889e-01 1.524719200000000052e+00 2.786245700000000158e-01 -4.882788900000000210e-01 -1.321656200000000059e+00 -2.296962000000000170e+00 -1.423716200000000098e+00 1.444185900000000133e-01 -4.932939700000000260e-01
-4.183558299999999841e-01 -9.199884400000000184e-01 -2.036404900000000073e-01 1.173281800000000041e+00 2.579785699999999959e+00 -6.140064399999999728e-02 -2.782949499999999854e-01 1.101526999999999923e+00 3.191127700000000011e+00 -4.204873499999999820e-01 -1.398087899999999939e+00 4.269186099999999762e-01 -8.696503300000000269e-01 -4.553310600000000097e-01 2.786245700000000158e-01 -4.882788900000000210e-01 -4.026857099999999967e+00 -3.829316099999999778e+00 -1.285781599999999969e+00 3.584652900000000031e+00 -4.932939700000000260e-01

Разница между файлами не показана из-за своего большого размера Загрузить разницу

1000
data.txt

Разница между файлами не показана из-за своего большого размера Загрузить разницу

@ -0,0 +1,568 @@
#import helpers21
import math
from pandas import DataFrame
import matplotlib.patches as patches
import matplotlib.pyplot as plt
from matplotlib import colors
import sklearn
from sklearn import preprocessing
from sklearn.metrics import precision_score, recall_score, f1_score, confusion_matrix
from sklearn.metrics import zero_one_loss
from sklearn import svm
from sklearn.datasets import make_blobs
from sklearn.model_selection import train_test_split
from matplotlib import pyplot
from pandas import DataFrame
import numpy as np
import matplotlib.pylab as plt
import tensorflow.keras
import numpy as np
import math
import matplotlib.pylab as plt
from sklearn import svm
import numpy as np
from pandas import DataFrame
from sklearn.metrics import precision_score, recall_score, f1_score, confusion_matrix
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Activation
from tensorflow.keras.callbacks import Callback
visual = True
verbose_show = False
# generate 2d classification dataset
def datagen(x_c, y_c, n_samples, n_features):
center = [[x_c, y_c]] if n_features == 2 else None
X, Y = make_blobs(n_samples = n_samples, centers = center, n_features = n_features, cluster_std = 0.1)
if n_features == 2:
plt.figure(figsize=(12, 8))
plt.scatter(X[:,0], X[:,1], marker='o', s=7, color = 'b', label = 'Training set')
plt.legend(loc = 'upper left', fontsize = 12)
plt.title('Training set')
plt.xlabel('x')
plt.ylabel('y')
plt.savefig('out/train_set.png')
plt.show()
np.savetxt('data.txt', X)
return X
def ire(vector1, vector2):
x = 0
for i in range(len(vector1)):
x += (vector2[i] - vector1[i])**2
# !! Round to .xx
ire = round(math.sqrt(x), 2)
return ire
def ire_array(array1, array2):
ire_list = []
for index in range(array1.shape[0]):
ire_list.append(ire(array1[index], array2[index]))
ire_array = np.array(ire_list)
return ire_array
class EarlyStoppingOnValue(tensorflow.keras.callbacks.Callback):
def __init__(self, monitor='loss', baseline=None):
super(tensorflow.keras.callbacks.Callback, self).__init__()
self.baseline = baseline
self.monitor = monitor
def on_epoch_end(self, epoch, logs=None):
current_value = self.get_monitor_value(logs)
if current_value < self.baseline:
self.model.stop_training = True
def get_monitor_value(self, logs):
monitor_value = logs.get(self.monitor)
if monitor_value is None:
print(
'Early stopping conditioned on metric `%s` '
'which is not available. Available metrics are: %s' %
(self.monitor, ','.join(list(logs.keys()))), RuntimeWarning
)
return monitor_value
class VerboseEveryNEpochs(Callback):
def __init__(self, every_n_epochs=1000, verbose=1):
super().__init__()
self.every_n_epochs = every_n_epochs
self.verbose = verbose
def on_epoch_end(self, epoch, logs=None):
if (epoch + 1) % self.every_n_epochs == 0:
if self.verbose:
print(f"\nEpoch {epoch + 1}/{self.params['epochs']}")
if logs:
log_str = ", ".join([f"{k}: {v:.4f}" for k, v in logs.items()])
print(f" - {log_str}")
#создание и обучение модели автокодировщика
def create_fit_save_ae(cl_train, ae_file, irefile, epohs, verbose_show, patience, **kwargs):
verbose_every_n_epochs = kwargs.get('verbose_every_n_epochs', 1000)
early_stopping_delta = kwargs.get('early_stopping_delta', 0.01)
early_stopping_value = kwargs.get('early_stopping_value', 0.0001)
size = cl_train.shape[1]
#ans = '2'
ans = input('Задать архитектуру автокодировщиков или использовать архитектуру по умолчанию? (1/2): ')
if ans == '1':
n = int(input("Задайте количество скрытых слоёв (нечетное число) : "))
# Ниже строки читать входные данные пользователя с помощью функции map ()
ae_arch = list(map(int, input("Задайте архитектуру скрытых слоёв автокодировщика, например, в виде 3 1 3 : ").strip().split()))[:n]
ae = tensorflow.keras.models.Sequential()
# input layer
ae.add(tensorflow.keras.layers.Dense(size))
ae.add(tensorflow.keras.layers.Activation('tanh'))
# hidden layers
for i in range(len(ae_arch)):
ae.add(tensorflow.keras.layers.Dense(ae_arch[i]))
ae.add(tensorflow.keras.layers.Activation('tanh'))
# output layer
ae.add(tensorflow.keras.layers.Dense(size))
ae.add(tensorflow.keras.layers.Activation('linear'))
else:
ae = tensorflow.keras.models.Sequential()
# input layer
ae.add(tensorflow.keras.layers.Dense(size))
ae.add(tensorflow.keras.layers.Activation('tanh'))
# hidden layers
ae.add(tensorflow.keras.layers.Dense(3))
ae.add(tensorflow.keras.layers.Activation('tanh'))
ae.add(tensorflow.keras.layers.Dense(2))
ae.add(tensorflow.keras.layers.Activation('tanh'))
ae.add(tensorflow.keras.layers.Dense(1))
ae.add(tensorflow.keras.layers.Activation('tanh'))
ae.add(tensorflow.keras.layers.Dense(2))
ae.add(tensorflow.keras.layers.Activation('tanh'))
ae.add(tensorflow.keras.layers.Dense(3))
ae.add(tensorflow.keras.layers.Activation('tanh'))
# output layer
ae.add(tensorflow.keras.layers.Dense(size))
ae.add(tensorflow.keras.layers.Activation('linear'))
optimizer = tensorflow.keras.optimizers.Adam(learning_rate=0.001, beta_1=0.9, beta_2=0.999, amsgrad=False)
ae.compile(loss='mean_squared_error', optimizer=optimizer)
epo = epohs
verbose = 1 if verbose_show else 0
early_stopping_callback_on_error = EarlyStoppingOnValue(monitor='loss', baseline=early_stopping_value)
early_stopping_callback_on_improving = tensorflow.keras.callbacks.EarlyStopping(monitor='loss',
min_delta=early_stopping_delta, patience = patience,
verbose=verbose, mode='min',
baseline=None,
restore_best_weights=True)
history_callback = tensorflow.keras.callbacks.History()
history_object = ae.fit(cl_train, cl_train,
batch_size=cl_train.shape[0],
epochs=epo,
callbacks=[
early_stopping_callback_on_error,
history_callback,
early_stopping_callback_on_improving,
VerboseEveryNEpochs(every_n_epochs=verbose_every_n_epochs),
],
verbose=verbose)
ae_trainned = ae
ae_pred = ae_trainned.predict(cl_train)
ae_trainned.save(ae_file)
IRE_array = np.round(ire_array(cl_train, ae_pred), 2)
IREth = np.amax(IRE_array)
with open(irefile, 'w') as file:
file.write(str(IREth))
print()
print()
return ae_trainned, IRE_array, IREth
def test(y_pred, Y_test):
y_pred[y_pred != Y_test] = -100 # find and mark classification error
n_errors = (y_pred == -100).astype(int).sum()
return n_errors
def predict_ae(nn, x_test, threshold):
x_test_predicted = nn.predict(x_test)
ire = ire_array(x_test, x_test_predicted)
predicted_labels = (ire > threshold).astype(float)
predicted_labels = predicted_labels.reshape((predicted_labels.shape[0], 1))
ire = np.transpose(np.array([ire]))
return predicted_labels, ire
def load_ae(path_to_ae_file):
return tensorflow.keras.models.load_model(path_to_ae_file)
def square_calc(numb_square, X_train, ae, IRE_th, num, visual):
# scan
x_min, x_max = X_train[:, 0].min() - 2, X_train[:, 0].max() + 1
# print(x_min, x_max)
y_min, y_max = X_train[:, 1].min() - 1, X_train[:, 1].max() + 1
# print(y_min, y_max)
h_x = (x_max - x_min) / 100
h_y = (y_max - y_min) / 100
h_y = h_x
#print('ШАГ x:', h_x)
#print('ШАГ y:', h_y)
xx, yy = np.meshgrid(np.arange(x_min, x_max, h_x), np.arange(y_min, y_max, h_y))
X_plot = np.c_[xx.ravel(), yy.ravel()]
# получение ответов автоэнкодера
Z, ire = predict_ae(ae, X_plot, IRE_th)
# print('z')
# print(Z)
X_def = np.array([0, 0], ndmin=2)
for ind, ans in enumerate(Z):
if ans == 0:
# print(ans, ' kl= 1')
# print(ind, len (svm_predicted_scan))
X_def = np.append(X_def, [X_plot[ind]], axis=0)
# построение областей покрытия и границ классов
X_def = np.delete(X_def, 0, axis=0)
Z = Z.reshape(xx.shape)
if visual:
plt.figure(figsize=(12, 6))
# fig, ax = plt.subplots()
plt.contourf(xx, yy, Z, cmap=plt.cm.tab10, alpha=0.5)
plt.scatter(X_train[:, 0], X_train[:, 1], marker='o', s=7, color='b')
plt.legend(['C1'])
plt.xlabel('X')
plt.ylabel('Y')
plt.xlim(xx.min(), xx.max())
plt.ylim(yy.min(), yy.max())
plt.title('Autoencoder AE' + str(num) + '. Training set. Class boundary')
plt.savefig('out/AE' + str(num) + '_train_def.png')
plt.show()
h_x = (x_max - x_min) / numb_square
h_y = (y_max - y_min) / numb_square
h_x = abs(h_x)
h_y = abs(h_y)
col_id = np.zeros(numb_square)
col_id_ae = np.zeros(numb_square)
for i in range(numb_square):
for x in X_train[:, 0]:
if x_min + i * h_x <= x < x_min + (i + 1) * h_x:
col_id[i] = 1
for x in X_def[:, 0]:
if x_min + i * h_x <= x < x_min + (i + 1) * h_x:
col_id_ae[i] = 1
amount = 0
cart = np.zeros((numb_square, numb_square))
for_rect = np.array([0, 0], ndmin=2)
for index, element in enumerate(col_id):
if element == 1:
for i in range(numb_square):
for xy in X_train:
if y_min + i * h_y <= xy[1] < y_min + (i + 1) * h_y and x_min + index * h_x <= xy[0] < x_min + (
index + 1) * h_x:
amount = amount + 1
cart[numb_square - i - 1, index] = 1
for_rect = np.append(for_rect, np.array([x_min + index * h_x, y_min + i * h_y], ndmin=2),
axis=0)
break
for_rect = np.delete(for_rect, 0, axis=0)
# print('cart', cart)
#print('amount: ', amount)
amount_ae = 0
cart_ae = np.zeros((numb_square, numb_square))
for_rect_ae = np.array([0, 0], ndmin=2)
for index, element in enumerate(col_id_ae):
if element == 1:
for i in range(numb_square):
for xy in X_def:
if y_min + i * h_y <= xy[1] < y_min + (i + 1) * h_y and x_min + index * h_x <= xy[0] < x_min + (
index + 1) * h_x:
amount_ae = amount_ae + 1
cart_ae[numb_square - i - 1, index] = 1
for_rect_ae = np.append(for_rect_ae, np.array([x_min + index * h_x, y_min + i * h_y], ndmin=2),
axis=0)
break
for_rect_ae = np.delete(for_rect_ae, 0, axis=0)
# print('cart_ae', cart_ae)
print('amount: ', amount)
print('amount_ae: ', amount_ae)
if visual:
label0_ae = 'Распознанное AE' + str(num) + ' множество'
s0_ae = 0.3
label0 = 'Обучающее множество'
s0 = 12
fig = plt.figure(figsize=(16, 7))
ax_1 = fig.add_subplot(1, 2, 1)
ax_2 = fig.add_subplot(1, 2, 2)
ax_1.grid(which='major', axis='both', linestyle='-', color='k', linewidth=0.5)
ax_1.set_xticks(np.arange(x_min, x_max, h_x))
ax_1.set_yticks(np.arange(y_min, y_max, h_y))
x_lbl = np.round(np.arange(x_min, x_max, h_x), 1).tolist()
y_lbl = np.round(np.arange(y_min, y_max, h_y), 1).tolist()
ax_1.set_xticklabels(x_lbl)
ax_1.set_yticklabels(y_lbl)
for xy in for_rect:
rect = patches.Rectangle((xy[0], xy[1]), h_x, h_y, linewidth=1, edgecolor='none', facecolor='royalblue',
alpha=0.3)
ax_1.add_patch(rect)
ax_1.scatter(X_train[:, 0], X_train[:, 1], marker='o', s=s0, color='indigo', label=label0)
ax_1.legend(loc='upper left', fontsize=12)
ax_1.set_title('Площадь обучающего множества |Xt|', fontsize=14)
ax_1.set_xlabel('X')
ax_1.set_ylabel('Y')
ax_1.set_xlim(x_min, x_max)
ax_1.set_ylim(y_min, y_max)
ax_2.grid(which='major', axis='both', linestyle='-', color='k', linewidth=0.5)
ax_2.set_xticks(np.arange(x_min, x_max, h_x))
ax_2.set_yticks(np.arange(y_min, y_max, h_y))
ax_2.set_xticklabels(x_lbl)
ax_2.set_yticklabels(y_lbl)
for xy in for_rect_ae:
rect = patches.Rectangle((xy[0], xy[1]), h_x, h_y, linewidth=1, edgecolor='none', facecolor='coral', alpha=0.4)
ax_2.add_patch(rect)
ax_2.scatter(X_def[:, 0], X_def[:, 1], marker='o', s=s0, color='b', label=label0_ae)
ax_2.legend(loc='upper left', fontsize=12)
ax_2.set_title('Площадь деформированного множества |Xd|', fontsize=14)
ax_2.set_xlabel('X')
ax_2.set_ylabel('Y')
ax_2.set_xlim(x_min, x_max)
ax_2.set_ylim(y_min, y_max)
# plt.xlim(x_min - 4*h_x ,x_max + 4*h_x)
# plt.ylim(y_min - 4*h_y, y_max + 4*h_y)
plt.savefig('out/XtXd_' + str(num) + '.png')
plt.show()
if visual:
fig, axes = plt.subplots(nrows=1, ncols=3, figsize=(22, 8))
# n = 1
for ax in axes.flat:
# ax.set(title='axes_' + str(n), xticks=[], yticks=[])
# n += 1
# ax.scatter(X_ov[:, 0], X_ov[:, 1], marker='o', s=s0, color='b', label=label0)
ax.grid(which='major', axis='both', linestyle='-', color='k', linewidth=0.5)
ax.set_xticks(np.arange(x_min, x_max, h_x))
ax.set_yticks(np.arange(y_min, y_max, h_y)) # +0.7
x_lbl = np.round(np.arange(x_min, x_max, h_x), 1).tolist()
y_lbl = np.round(np.arange(y_min, y_max, h_y), 1).tolist()
ax.set_xticklabels(x_lbl)
ax.set_yticklabels(y_lbl)
ax.set_xlim(x_min, x_max)
ax.set_ylim(y_min, y_max)
ax.set_xlabel('X')
ax.set_ylabel('Y')
# ax.set_axis_label_font_size(fontsize=14)
for xy in for_rect_ae:
rect = patches.Rectangle((xy[0], xy[1]), h_x, h_y, linewidth=1, edgecolor='k', facecolor='coral')
ax.add_patch(rect)
rect = patches.Rectangle((xy[0], xy[1]), h_x, h_y, linewidth=1, edgecolor='none', facecolor='coral',
label='Площадь множества |Xd|')
ax.add_patch(rect)
for xy in for_rect:
rect = patches.Rectangle((xy[0], xy[1]), h_x, h_y, linewidth=1, edgecolor='k', facecolor='royalblue')
ax.add_patch(rect)
rect = patches.Rectangle((xy[0], xy[1]), h_x, h_y, linewidth=1, edgecolor='none', facecolor='royalblue',
label='Площадь множества |Xt|')
ax.add_patch(rect)
# ax.scatter(for_rect[0, 0] + 0.1, for_rect[0, 1] + 0.1, marker='o', s=s0, color='cornflowerblue', label='Объем обучающего множества, Xt')
# ax.scatter(for_rect_ae[0,0]+ 0.1, for_rect_ae[0,1]+ 0.1, marker='o', s=s0, color='darkorange', label='Объем деформированного множества, Xd')
ax.legend(loc='upper left', fontsize=16)
####ax.set_ylim(-2.5, 2.9)
# ax.set_ylim(-1.7, 2.4)#ae2
nn = 0
for xy_ae in for_rect_ae:
for xy in for_rect:
if xy_ae[0] == xy[0] and xy_ae[1] == xy[1]:
nn = nn + 1
if nn == 1:
rect1 = patches.Rectangle((xy_ae[0], xy_ae[1]), h_x, h_y, linewidth=1, edgecolor='k',
facecolor='none', hatch='/', label='Площадь на пересечении |Xt| и |Xd|')
axes[2].add_patch(rect1)
else:
rect1 = patches.Rectangle((xy_ae[0], xy_ae[1]), h_x, h_y, linewidth=1, edgecolor='k',
facecolor='none', hatch='/')
axes[2].add_patch(rect1)
# now#rect1 = patches.Rectangle((xy_ae[0]- 2*h_x, xy_ae[1]-2*h_y), h_x, h_y, linewidth=1, edgecolor='k', facecolor='none', hatch='/', label='Площадь на пересечении |Xt| и |Xd|')
# now#axes[2].add_patch(rect1)
axes[2].legend(loc='upper left', fontsize=16)
# print('true')
flag = 1
n = 0
for xy_ae in for_rect_ae:
flag = 1
for xy in for_rect:
if xy_ae[0] == xy[0] and xy_ae[1] == xy[1]:
# print(xy_ae[0], '!=', xy[0],' and ', xy_ae[1], '!=', xy[1])
flag = 0
if flag == 1:
n = n + 1
if n == 1:
rect2 = patches.Rectangle((xy_ae[0], xy_ae[1]), h_x, h_y, linewidth=1, edgecolor='k', facecolor='none',
hatch='/', label='Площадь |Xd| за исключением |Xt| (|Xd\Xt|)')
axes[0].add_patch(rect2)
else:
rect2 = patches.Rectangle((xy_ae[0], xy_ae[1]), h_x, h_y, linewidth=1, edgecolor='k', facecolor='none',
hatch='/')
axes[0].add_patch(rect2)
rect1 = patches.Rectangle((for_rect_ae[0, 0], for_rect_ae[0, 1]), h_x, h_y, linewidth=1, edgecolor='k',
facecolor='none', label='Площадь |Xt| за исключением |Xd| (|Xt\Xd|)')
axes[1].add_patch(rect1)
# now#rect2 = patches.Rectangle((xy_ae[0], xy_ae[1]), h_x, h_y, linewidth=1, edgecolor='k', facecolor='none', hatch='/', label='Площадь |Xd| за исключением |Xt| (|Xd\Xt|)')
# now#axes[0].add_patch(rect2)
axes[0].legend(loc='upper left', fontsize=16)
axes[1].legend(loc='upper left', fontsize=16)
axes[0].set_title('Excess. AE' + str(num), fontsize=20)
axes[1].set_title('Deficit. AE' + str(num), fontsize=20)
axes[2].set_title('Coating. AE' + str(num), fontsize=20)
plt.savefig('out/XtXd_' + str(num) + '_metrics.png')
plt.show()
square_ov = amount * h_x * h_y
square_ae = amount_ae * h_x * h_y
print()
print('Оценка качества AE' + str(num))
extra_pre_ae = square_ov / square_ae
# print('square_ov:', square_ov)
# print('square_ae:', square_ae)
Ex = cart_ae - cart
Excess = np.sum(Ex == 1) / amount
print('IDEAL = 0. Excess: ', Excess)
Def = cart - cart_ae
Deficit = np.sum(Def == 1) / amount
print('IDEAL = 0. Deficit: ', Deficit)
cart[cart > 0] = 5
Coa = cart - cart_ae
Coating = np.sum(Coa == 4) / amount
print('IDEAL = 1. Coating: ', Coating)
summa = Deficit + Coating
print('summa: ', summa)
print('IDEAL = 1. Extrapolation precision (Approx): ', extra_pre_ae)
print()
print()
with open('out/result.txt', 'w') as file:
file.write(
'------------Оценка качества AE' + str(num) + ' С ПОМОЩЬЮ НОВЫХ МЕТРИК------------' + '\n' + \
'Approx = ' + str(extra_pre_ae) + '\n' + \
'Excess = ' + str(Excess) + '\n' + \
'Deficit = ' + str(Deficit) + '\n' + \
'Coating = ' + str(Coating) + '\n')
return xx, yy, Z
#####2D
def plot_xdef(X_train, xx, yy, Z):
plt.contourf(xx, yy, Z, cmap=plt.cm.tab10, alpha=0.5)
plt.scatter(X_train[:, 0], X_train[:, 1], marker='o', s=7, color='b')
plt.legend(['C1'])
plt.xlabel('X')
plt.ylabel('Y')
plt.xlim(xx.min(), xx.max())
plt.ylim(yy.min(), yy.max())
def plot2in1(X_train, xx, yy, Z1, Z2):
plt.subplot(1, 2, 1)
plot_xdef(X_train, xx, yy, Z1)
plt.title('Autoencoder AE1')#. Training set. Class boundary')
plt.subplot(1, 2, 2)
plot_xdef(X_train, xx, yy, Z2)
plt.title('Autoencoder AE2')#. Training set. Class boundary')
plt.savefig('out/AE1_AE2_train_def.png')
plt.show()
def anomaly_detection_ae(predicted_labels, ire, ire_th):
ire = np.round(ire,2)
ire_th = np.round(ire_th, 2)
if predicted_labels.sum() == 0:
print("Аномалий не обнаружено")
else:
print()
print('%-10s%-10s%-10s%-10s' % ('i', 'Labels', 'IRE', 'IREth'))
for i, pred in enumerate(predicted_labels):
print('%-10s%-10s%-10s%-10s' % (i, pred, ire[i], ire_th))
print('Обнаружено ', predicted_labels.sum(), ' аномалий')
def plot2in1_anomaly(X_train, xx, yy, Z1, Z2, anomalies):
plt.subplot(1, 2, 1)
plot_xdef(X_train, xx, yy, Z1)
plt.scatter(anomalies[:, 0], anomalies[:, 1], marker='o', s=12, color='r')
plt.title('Autoencoder AE1')#. Training set. Class boundary')
plt.subplot(1, 2, 2)
plot_xdef(X_train, xx, yy, Z2)
plt.scatter(anomalies[:, 0], anomalies[:, 1], marker='o', s=12, color='r')
plt.title('Autoencoder AE2')#. Training set. Class boundary')
plt.savefig('out/AE1_AE2_train_def_anomalies.png')
plt.show()
def ire_plot(title, IRE_test, IREth, ae_name):
x = range(1, len(IRE_test) + 1)
IREth_array = [IREth for x in x]
plt.figure(figsize = (16, 8))
plt.title('IRE for ' + title + ' set. ' + ae_name, fontsize = 24)
plt.plot(x, IRE_test, linestyle = '-', color = 'r', lw = 2, label = 'IRE')
plt.plot(x, IREth_array, linestyle = '-', color = 'k', lw = 2, label = 'IREth')
#plt.xlim(0, len(x))
ymax = 1.5 * max(np.amax(IRE_test), IREth)
plt.ylim(0, ymax)
plt.xlabel('Vector number', fontsize = 20)
plt.ylabel('IRE', fontsize = 20)
plt.grid()
plt.legend(loc = 'upper left', fontsize = 16)
plt.gcf().savefig('out/IRE_' + title + ae_name + '.png')
plt.show()
return

Двоичные данные
out/AE1.h5

Двоичный файл не отображается.

Двоичные данные
out/AE1_AE2_train_def.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 21 KiB

Двоичные данные
out/AE1_AE2_train_def_anomalies.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 22 KiB

Двоичные данные
out/AE1_train_def.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 35 KiB

Двоичные данные
out/AE2.h5

Двоичный файл не отображается.

Двоичные данные
out/AE2_train_def.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 32 KiB

Двоичные данные
out/AE3.h5

Двоичный файл не отображается.

Двоичные данные
out/IRE_testAE1.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 42 KiB

Двоичные данные
out/IRE_testAE3.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 60 KiB

Двоичные данные
out/IRE_trainingAE1.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 57 KiB

Двоичные данные
out/IRE_trainingAE2.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 106 KiB

Двоичные данные
out/IRE_trainingAE3.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 86 KiB

Двоичные данные
out/XtXd_1.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 98 KiB

Двоичные данные
out/XtXd_1_metrics.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 110 KiB

Двоичные данные
out/XtXd_2.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 66 KiB

Двоичные данные
out/XtXd_2_metrics.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 77 KiB

@ -0,0 +1,5 @@
------------Оценка качества AE2 С ПОМОЩЬЮ НОВЫХ МЕТРИК------------
Approx = 0.7333333333333333
Excess = 0.36363636363636365
Deficit = 0.0
Coating = 1.0

Двоичные данные
out/train_set.png

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 45 KiB

@ -0,0 +1,282 @@
# Отчет по лабораторной работе №2
Юсуфов Юнус,Романов Мирон , А-01-22
## 1. Определили свой набор данных по таблице.
Бригада №9 -> k = 9 mod 3 = 0 -> Cardio
## 2. Подготовили программную среду Google Colaboratory для выполнения лабораторной работы.
```
import os
os.chdir('/content/drive/MyDrive/Colab Notebooks/is_lab2/')
```
```
!wget -N http://uit.mpei.ru/git/main/is_dnn/raw/branch/main/labworks/LW2/lab02_lib.py
!wget -N http://uit.mpei.ru/git/main/is_dnn/raw/branch/main/labworks/LW2/data/cardio_train.txt
!wget -N http://uit.mpei.ru/git/main/is_dnn/raw/branch/main/labworks/LW2/data/cardio_test.txt
```
### Задание 1.
## 1. В среде GoogleColab создалиновый блокнот(notebook). Импортировали необходимые для работы библиотеки и модули.
```
import numpy as np
import lab02_lib as lib
```
## 2. Сгенерировали индивидуальный набор двумерных данныхв пространстве признаковс координатами центра (k, k), где k–номер бригады. Вывели полученные данные на рисунок и в консоль.
```
# генерация датасета
# data=lib.datagen(9, 9, 1000, 2)
data = np.loadtxt('data.txt', dtype=float)
# вывод данных и размерности
print('Исходные данные:')
print(data)
print('Размерность данных:')
print(data.shape)
```
>Исходные данные:
>[[9.19152143 8.99994525]
>[9.04581739 9.01557436]
>[9.15556184 9.0895709 ]
>...
>[8.95859907 8.92197639]
>[9.00243424 8.96375469]
>[8.86636465 9.13183014]]
>Размерность данных:
>(1000, 2)
## 3. Создали и обучили автокодировщик AE1 простой архитектуры, выбрав небольшое количество эпох обучения. Зафиксировали значения, для будущего внесения в таблицу.
```
# обучение AE1
patience = 300
ae1_trained, IRE1, IREth1 = lib.create_fit_save_ae(data,'out/AE1.h5','out/AE1_ire_th.txt', 1000, True, patience)
# Построение графика ошибки реконструкции
lib.ire_plot('training', IRE1, IREth1, 'AE1')
```
* 5 Скрытых слоев
* 5 3 1 3 5
## 4. Зафиксировали ошибку MSE, на которой обучение завершилось. Построили график ошибки реконструкции обучающей выборки. Зафиксировали порог ошибки реконструкции – порог обнаружения аномалий.
![ae1_training](ae1_training.png)
* MSE_stop = 5.3137
* IREth1 = 3.6
## 5. Создали и обучили второй автокодировщик AE2 с усложненной архитектурой, задав большее количество эпох обучения.
```
# обучение AE2
ae2_trained, IRE2, IREth2 = lib.create_fit_save_ae(data,'out/AE2.h5','out/AE2_ire_th.txt', 3000, True, patience)
lib.ire_plot('training', IRE2, IREth2, 'AE2')
```
* 7 скрытых слоев
* 5 3 2 1 2 3 5
## 6. Зафиксировали ошибку MSE, на которой обучение завершилось. Построили график ошибки реконструкции обучающей выборки. Зафиксировали второй порог ошибки реконструкции – порог обнаружения аномалий.
![ae2_training](ae2_training.png)
* MSE_stop = 0.0103
* IREth1 = 0.4
## 7. Рассчитали характеристики качества обучения EDCA для AE1 и AE2. Визуализировали и сравнили области пространства признаков, распознаваемые автокодировщиками AE1 и AE2. Сделали вывод о пригодности AE1 и AE2 для качественного обнаружения аномалий.
* AE1
```
# построение областей покрытия и границ классов
# расчет характеристик качества обучения
numb_square = 20
xx, yy, Z1 = lib.square_calc(numb_square, data, ae1_trained, IREth1, '1', True)
```
![ae1_class](ae1_class.png)
* EDCA AE1
![ae1_EDCA](ae1_EDCA.png)
![ae1_EDCA](ae1_EDCA1.png)
* Оценка качества AE1
* IDEAL = 0. Excess: 12.636363636363637
* IDEAL = 0. Deficit: 0.0
* IDEAL = 1. Coating: 1.0
* summa: 1.0
* IDEAL = 1. Extrapolation precision (Approx): 0.07333333333333332
* AE2
```
# построение областей покрытия и границ классов
# расчет характеристик качества обучения
numb_square = 20
xx, yy, Z2 = lib.square_calc(numb_square, data, ae2_trained, IREth2, '2', True)
```
![ae2_class](ae2_class.png)
* EDCA AE2
![ae2_EDCA](ae2_EDCA.png)
![ae2_EDCA](ae2_EDCA1.png)
* Оценка качества AE2
* IDEAL = 0. Excess: 0.36363636363636365
* IDEAL = 0. Deficit: 0.0
* IDEAL = 1. Coating: 1.0
* summa: 1.0
* IDEAL = 1. Extrapolation precision (Approx): 0.7333333333333333
### Сравним области пространства признаков AE1 и AE2
```
# сравнение характеристик качества обучения и областей аппроксимации
lib.plot2in1(data, xx, yy, Z1, Z2)
```
![ae1_ae2](ae1_ae2.png)
### Вывод по пункту.
AE1 не достаточно хорошо аппроксимирует область обучающих данных, что может значительно повлиять на результаты тестов. По сравнению с AE2, AE1 плохо ограничивает нашу область признаков с "левой" стороны.
## 8. Изучили сохраненный набор данных и пространство признаков. Создали тестовую выборку, состоящую из 4-ёх элементов, не входящих в обучающую выборку. Элементы выбраны так, чтобы AE1 распознавал их как норму, а AE2 детектировал как аномалии.
```
# загрузка тестового набора
data_test = np.loadtxt('/content/drive/MyDrive/Colab Notebooks/is_lab2/Lab02/data_test.txt', dtype=float)
print(data_test)
```
>[[8.1 8.5]
>[7.2 8. ]
>[9. 8. ]
>[8.5 9.5]]
## 9. Применили обученные автокодировщики AE1 и AE2 к тестовым данным и вывели значения ошибки реконструкции для каждого элемента тестовой выборки относительно порога.
```
# тестирование АE1
predicted_labels1, ire1 = lib.predict_ae(ae1_trained, data_test, IREth1)
lib.anomaly_detection_ae(predicted_labels1, ire1, IREth1)
lib.ire_plot('test', ire1, IREth1, 'AE1')
```
>Аномалий не обнаружено
![ae1_test](ae1_test.png)
```
# тестирование АE2
predicted_labels2, ire2 = lib.predict_ae(ae2_trained, data_test, IREth2)
lib.anomaly_detection_ae(predicted_labels2, ire2, IREth2)
lib.ire_plot('test', ire2, IREth2, 'AE1')
```
>i Labels IRE IREth
>0 [1.] [1.02] 0.4
>1 [1.] [2.05] 0.4
>2 [1.] [1.] 0.4
>3 [1.] [0.69] 0.4
>Обнаружено 4.0 аномалий
![ae2_test](ae2_test.png)
## 10. Визуализировали элементы обучающей и тестовой выборки в областях пространства признаков, распознаваемых автокодировщиками AE1 и AE2.
```
# построение областей аппроксимации и точек тестового набора
lib.plot2in1_anomaly(data, xx, yy, Z1, Z2, data_test)
```
![ae1_ae2_test](ae1_ae2_test.png)
## 11. Результаты исследования занесли в таблицу:
| |Количество скрытых слоев|Количество нейронов в скрытых слоях|Количество эпох обучения|Ошибка MSE_stop|Порог ошибки реконструкции|Значение показателя Excess|Значение показателя Approx|Количество обнаруженных аномалий|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|AE1|5|5 3 1 3 5|1000|5.3137|3.6|12.636363636363637|0.07333333333333332|0|
|AE2|7|5 3 2 1 2 3 5|3000|0.0103|0.4|0.36363636363636365|0.7333333333333333|4|
## 12. Сделали выводы о требованиях к:
* Данным обучения - необходима плотная выборка нормальных состояний без выбросов, покрывающая рабочую область (в эксперименте — 1000 точек вокруг (9, 9)), чтобы модель корректно восстанавливала типичные объекты.
* Архитектуре кодировщика - оптимальна глубокая симметричная структура с узким горлышком (5-3-2-1-2-3-5), обеспечивающая точную реконструкцию и устойчивые границы нормы.
* Количеству эпох обучения - требуется не менее 3000 эпох для данного набора данных; обучение в 1000 эпох оставляет высокую ошибку и не формирует надежный порог аномалий.
* Ошибке MSE_stop, приемлемой для останова обучения - ориентир на значения порядка 0.001 или 0.01 (0.0103 для AE2); более крупные значения, как 5.3137 у AE1, свидетельствуют о недообучении.
* Ошибке реконструкции обучающей выборки - целесообразно удерживать порог ниже 0.5 (IREth = 0.4 у AE2), тогда как порог 3.6 у AE1 приводит к пропуску аномалий.
* Характеристикам EDCA, для качественного обнаружения аномалий в данных - требуется минимальный Excess (<1) и высокая Approx (0.7); такие значения достигаются AE2, тогда как AE1 с Excess = 12.6 непригоден.
### Задание 2.
## 1. Изучили описание своего набора реальных данных, что он из себя представляет.
## 2. Загрузили многомерную обучающую выборку реальных данных cardio_train.txt. Изучили и загрузили тестовую выборку cardio_test.txt.
```
train = np.loadtxt('cardio_train.txt', dtype=float)
test = np.loadtxt('cardio_test.txt', dtype=float)
print('Исходные данные:')
print(train)
print('Размерность данных:')
print(train.shape)
print('Исходные данные:')
print(test)
print('Размерность данных:')
print(test.shape)
```
Исходные данные:
>[[ 0.00491231 0.69319077 -0.20364049 ... 0.23149795 -0.28978574 -0.49329397]
>[ 0.11072935 -0.07990259 -0.20364049 ... 0.09356344 -0.25638541 -0.49329397]
>[ 0.21654639 -0.27244466 -0.20364049 ... 0.02459619 -0.25638541 1.1400175 ]
>...
>[ 0.85144861 -0.91998844 -0.20364049 ... 0.57633422 -0.65718941 1.1400175 ]
>[ 0.85144861 -0.91998844 -0.20364049 ... 0.57633422 -0.62378908 -0.49329397]
>[ 1.0630827 -0.51148142 -0.16958144 ... 0.57633422 -0.65718941 -0.49329397]]
>Размерность данных:
>(1654, 21)
## 3. Создали и обучили автокодировщик с подходящей для данных
архитектурой. Выбрали необходимое количество эпох обучения.
```
# обучение AE3
patience = 7500
from time import time
start = time()
ae3_trained, IRE3, IREth3 = lib.create_fit_save_ae(train,'out/AE3.h5','out/AE3_ire_th.txt', 120000, False, 7500, early_stopping_delta = 0.001)
print("Время на обучение: ", time() - start)
# Построение графика ошибки реконструкции
lib.ire_plot('training', IRE3, IREth3, 'AE3')
```
* 15 скрытых слоев
* 21 19 17 15 13 11 9 7 9 11 13 15 17 19 21
## 4. Зафиксировали ошибку MSE, на которой обучение завершилось. Построили график ошибки реконструкции обучающей выборки. Зафиксировали порог ошибки реконструкции – порог обнаружения аномалий.
![ae3_training](ae3_training.png)
* MSE_stop = 0.0319
* IREth1 = 3.07
## 5. Подали тестовую выборку на вход обученного автокодировщика для обнаружения аномалий. Вывели график ошибки реконструкции элементов тестовой выборки относительно порога.
```
# тестирование АE3
predicted_labels3, ire3 = lib.predict_ae(ae3_trained, test, IREth3)
lib.anomaly_detection_ae(predicted_labels3, ire3, IREth3)
lib.ire_plot('test', ire3, IREth3, 'AE3')
```
>Обнаружено 94.0 аномалий
>Accuracy: 86.23%
![ae3_test](ae3_test.png)
|Dataset name|Количество скрытых слоев|Количество нейронов в скрытых слоях|Количество эпох обучения|Ошибка MSE_stop|Порог ошибки реконструкции|% Обнаруженных аномалий|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|Cardio|15|21 19 17 15 13 11 9 7 9 11 13 15 17 19 21|85000|0.0319|3.07|86.23|
## 6. Сделали выводы о требованиях к:
* Данным обучения - необходима масштабированная и очищенная выборка, охватывающая все состояния нормы; 1654 нормализованных записей cardio_train дают устойчивую оценку распределения.
* Архитектуре кодировщика - эффективна глубокая симметричная сеть, которая сжимает 21 признаковое измерение до компактного латентного пространства и поддерживает высокую точность восстановления.
* Количеству эпох обучения - требуется длительное обучение (100к+ эпох) с ранней остановкой; меньшая длительность не успевает снизить ошибку реконструкции до приемлемого уровня.
* Ошибке MSE_stop, приемлемой для останова обучения - ориентир на значения порядка 0.01 (0.0319), после чего дальнейшее обучение дает минимальный прирост качества при заметном росте времени.
* Ошибке реконструкции обучающей выборки, для качественного обнаружения аномалий в случае, когда размерность пространства признаков высока - порог около 3.0 (IREth = 3.07) позволяет выделять ~86% аномалий без чрезмерного количества ложных срабатываний; важно калибровать порог по распределению ошибок.
Загрузка…
Отмена
Сохранить