Files
yola/zaoYun/master/clf/clf_svm_linear_wbc.c
T
coco 85d885e008 a
2026-07-03 16:29:47 +08:00

168 lines
26 KiB
C

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#define N_FEATURES 6
#define N_CLASSES 5
#define N_VECTORS 330
#define N_ROWS 5
#define N_COEFFICIENTS 4
#define N_INTERCEPTS 10
#define KERNEL_TYPE 'l'
#define KERNEL_GAMMA 0.02
#define KERNEL_COEF 0.0
#define KERNEL_DEGREE 3
double vectors[330][6] = {{7.0, 46.0, 221.0, 203.0, 137.0, 136.0}, {39.0, 2.0, 168.0, 176.0, 127.0, 128.0}, {45.0, 3.0, 168.0, 175.0, 127.0, 128.0}, {44.0, 7.0, 171.0, 178.0, 126.0, 130.0}, {24.0, 2.0, 167.0, 175.0, 127.0, 128.0}, {7.0, 45.0, 221.0, 203.0, 137.0, 136.0}, {6.0, 0.0, 171.0, 178.0, 128.0, 127.0}, {8.0, 42.0, 215.0, 200.0, 135.0, 136.0}, {174.0, 36.0, 169.0, 159.0, 137.0, 129.0}, {166.0, 43.0, 194.0, 177.0, 143.0, 125.0}, {165.0, 42.0, 188.0, 173.0, 142.0, 124.0}, {166.0, 42.0, 191.0, 175.0, 142.0, 124.0}, {174.0, 36.0, 169.0, 159.0, 137.0, 129.0}, {174.0, 39.0, 167.0, 156.0, 138.0, 129.0}, {165.0, 43.0, 194.0, 178.0, 143.0, 124.0}, {3.0, 44.0, 178.0, 165.0, 137.0, 133.0}, {5.0, 28.0, 192.0, 185.0, 133.0, 132.0}, {174.0, 35.0, 149.0, 142.0, 136.0, 128.0}, {175.0, 37.0, 165.0, 154.0, 137.0, 129.0}, {7.0, 29.0, 210.0, 202.0, 133.0, 133.0}, {7.0, 27.0, 191.0, 186.0, 132.0, 132.0}, {173.0, 35.0, 151.0, 144.0, 136.0, 128.0}, {172.0, 36.0, 150.0, 142.0, 137.0, 128.0}, {166.0, 43.0, 193.0, 177.0, 143.0, 125.0}, {174.0, 39.0, 169.0, 158.0, 138.0, 129.0}, {174.0, 37.0, 170.0, 160.0, 138.0, 129.0}, {165.0, 43.0, 195.0, 179.0, 143.0, 124.0}, {166.0, 43.0, 194.0, 177.0, 143.0, 125.0}, {166.0, 41.0, 189.0, 174.0, 141.0, 125.0}, {165.0, 43.0, 194.0, 178.0, 142.0, 124.0}, {162.0, 44.0, 190.0, 174.0, 143.0, 122.0}, {174.0, 37.0, 170.0, 160.0, 138.0, 128.0}, {174.0, 36.0, 170.0, 160.0, 137.0, 129.0}, {162.0, 44.0, 190.0, 174.0, 143.0, 122.0}, {30.0, 20.0, 196.0, 190.0, 133.0, 130.0}, {174.0, 37.0, 171.0, 160.0, 138.0, 129.0}, {166.0, 44.0, 191.0, 175.0, 143.0, 125.0}, {166.0, 43.0, 192.0, 175.0, 143.0, 125.0}, {8.0, 44.0, 184.0, 173.0, 134.0, 136.0}, {7.0, 46.0, 180.0, 168.0, 135.0, 135.0}, {5.0, 25.0, 195.0, 189.0, 133.0, 132.0}, {174.0, 37.0, 164.0, 154.0, 138.0, 129.0}, {167.0, 55.0, 160.0, 143.0, 143.0, 125.0}, {171.0, 41.0, 191.0, 175.0, 141.0, 128.0}, {167.0, 55.0, 156.0, 140.0, 143.0, 125.0}, {172.0, 41.0, 184.0, 170.0, 140.0, 127.0}, {167.0, 39.0, 183.0, 170.0, 140.0, 125.0}, {170.0, 37.0, 184.0, 172.0, 139.0, 127.0}, {162.0, 63.0, 185.0, 161.0, 150.0, 120.0}, {167.0, 55.0, 158.0, 141.0, 143.0, 125.0}, {169.0, 40.0, 175.0, 163.0, 140.0, 126.0}, {170.0, 41.0, 189.0, 174.0, 141.0, 127.0}, {167.0, 57.0, 156.0, 139.0, 144.0, 125.0}, {170.0, 39.0, 174.0, 162.0, 139.0, 127.0}, {170.0, 37.0, 183.0, 171.0, 139.0, 127.0}, {168.0, 40.0, 178.0, 165.0, 140.0, 126.0}, {161.0, 63.0, 185.0, 161.0, 149.0, 120.0}, {171.0, 39.0, 184.0, 171.0, 140.0, 127.0}, {167.0, 55.0, 160.0, 143.0, 143.0, 125.0}, {167.0, 55.0, 159.0, 143.0, 143.0, 125.0}, {165.0, 54.0, 158.0, 142.0, 143.0, 124.0}, {170.0, 39.0, 174.0, 162.0, 139.0, 127.0}, {167.0, 40.0, 167.0, 156.0, 140.0, 125.0}, {167.0, 39.0, 183.0, 170.0, 140.0, 125.0}, {165.0, 41.0, 167.0, 155.0, 140.0, 125.0}, {168.0, 41.0, 175.0, 162.0, 140.0, 126.0}, {166.0, 53.0, 153.0, 138.0, 143.0, 125.0}, {170.0, 39.0, 174.0, 162.0, 139.0, 127.0}, {161.0, 60.0, 184.0, 161.0, 148.0, 120.0}, {162.0, 62.0, 182.0, 158.0, 149.0, 120.0}, {163.0, 59.0, 184.0, 162.0, 147.0, 122.0}, {167.0, 56.0, 158.0, 141.0, 144.0, 125.0}, {162.0, 63.0, 185.0, 161.0, 150.0, 120.0}, {163.0, 59.0, 186.0, 163.0, 148.0, 122.0}, {168.0, 56.0, 161.0, 143.0, 144.0, 125.0}, {171.0, 41.0, 189.0, 174.0, 141.0, 128.0}, {168.0, 56.0, 157.0, 140.0, 143.0, 125.0}, {168.0, 40.0, 165.0, 154.0, 139.0, 126.0}, {159.0, 47.0, 186.0, 169.0, 145.0, 120.0}, {167.0, 56.0, 158.0, 141.0, 144.0, 125.0}, {165.0, 55.0, 160.0, 143.0, 144.0, 124.0}, {161.0, 61.0, 186.0, 162.0, 149.0, 120.0}, {171.0, 41.0, 192.0, 176.0, 141.0, 128.0}, {167.0, 55.0, 157.0, 141.0, 143.0, 125.0}, {173.0, 40.0, 185.0, 170.0, 140.0, 128.0}, {168.0, 40.0, 176.0, 164.0, 140.0, 126.0}, {162.0, 62.0, 183.0, 159.0, 149.0, 120.0}, {171.0, 42.0, 187.0, 172.0, 141.0, 128.0}, {167.0, 41.0, 169.0, 157.0, 140.0, 125.0}, {171.0, 42.0, 187.0, 172.0, 141.0, 128.0}, {167.0, 54.0, 160.0, 143.0, 143.0, 125.0}, {160.0, 84.0, 164.0, 135.0, 155.0, 117.0}, {165.0, 79.0, 143.0, 120.0, 149.0, 122.0}, {165.0, 62.0, 176.0, 154.0, 148.0, 123.0}, {166.0, 84.0, 139.0, 115.0, 150.0, 123.0}, {165.0, 79.0, 144.0, 121.0, 149.0, 123.0}, {163.0, 75.0, 145.0, 123.0, 149.0, 121.0}, {165.0, 83.0, 136.0, 113.0, 149.0, 123.0}, {160.0, 91.0, 157.0, 127.0, 156.0, 117.0}, {166.0, 71.0, 149.0, 127.0, 147.0, 124.0}, {160.0, 85.0, 172.0, 141.0, 156.0, 117.0}, {166.0, 55.0, 178.0, 158.0, 145.0, 124.0}, {165.0, 79.0, 144.0, 121.0, 149.0, 123.0}, {166.0, 78.0, 142.0, 119.0, 149.0, 123.0}, {161.0, 86.0, 174.0, 142.0, 157.0, 118.0}, {166.0, 74.0, 150.0, 127.0, 149.0, 123.0}, {161.0, 87.0, 171.0, 139.0, 157.0, 117.0}, {153.0, 36.0, 105.0, 102.0, 136.0, 122.0}, {160.0, 68.0, 110.0, 97.0, 143.0, 121.0}, {165.0, 75.0, 151.0, 128.0, 149.0, 123.0}, {167.0, 57.0, 177.0, 156.0, 146.0, 124.0}, {165.0, 72.0, 144.0, 123.0, 147.0, 123.0}, {166.0, 71.0, 147.0, 126.0, 147.0, 124.0}, {164.0, 75.0, 145.0, 123.0, 149.0, 122.0}, {159.0, 90.0, 161.0, 131.0, 157.0, 116.0}, {165.0, 76.0, 143.0, 121.0, 148.0, 123.0}, {165.0, 78.0, 140.0, 118.0, 149.0, 123.0}, {161.0, 88.0, 162.0, 132.0, 156.0, 117.0}, {163.0, 74.0, 143.0, 122.0, 148.0, 121.0}, {166.0, 70.0, 148.0, 127.0, 147.0, 124.0}, {160.0, 81.0, 172.0, 143.0, 154.0, 117.0}, {163.0, 73.0, 142.0, 122.0, 148.0, 122.0}, {164.0, 84.0, 142.0, 117.0, 151.0, 122.0}, {165.0, 82.0, 138.0, 115.0, 150.0, 122.0}, {165.0, 73.0, 155.0, 132.0, 149.0, 123.0}, {166.0, 69.0, 149.0, 129.0, 146.0, 124.0}, {166.0, 62.0, 174.0, 152.0, 147.0, 123.0}, {160.0, 88.0, 167.0, 136.0, 157.0, 117.0}, {160.0, 82.0, 168.0, 139.0, 154.0, 117.0}, {165.0, 80.0, 155.0, 129.0, 151.0, 122.0}, {166.0, 62.0, 176.0, 154.0, 147.0, 123.0}, {165.0, 71.0, 146.0, 125.0, 147.0, 123.0}, {165.0, 74.0, 148.0, 126.0, 148.0, 123.0}, {165.0, 81.0, 147.0, 122.0, 150.0, 123.0}, {165.0, 79.0, 159.0, 132.0, 151.0, 123.0}, {165.0, 74.0, 148.0, 126.0, 149.0, 123.0}, {164.0, 83.0, 143.0, 119.0, 151.0, 121.0}, {166.0, 57.0, 167.0, 148.0, 145.0, 124.0}, {165.0, 79.0, 157.0, 131.0, 151.0, 122.0}, {160.0, 82.0, 168.0, 139.0, 154.0, 117.0}, {161.0, 81.0, 169.0, 140.0, 154.0, 118.0}, {161.0, 87.0, 171.0, 139.0, 157.0, 117.0}, {160.0, 87.0, 159.0, 130.0, 155.0, 117.0}, {164.0, 81.0, 137.0, 114.0, 149.0, 122.0}, {166.0, 73.0, 149.0, 127.0, 148.0, 123.0}, {167.0, 60.0, 172.0, 151.0, 146.0, 124.0}, {165.0, 82.0, 139.0, 116.0, 149.0, 123.0}, {165.0, 58.0, 178.0, 157.0, 146.0, 123.0}, {166.0, 72.0, 155.0, 132.0, 148.0, 124.0}, {166.0, 70.0, 148.0, 127.0, 147.0, 124.0}, {159.0, 87.0, 166.0, 136.0, 156.0, 116.0}, {164.0, 60.0, 169.0, 148.0, 146.0, 122.0}, {163.0, 74.0, 144.0, 123.0, 148.0, 122.0}, {160.0, 92.0, 160.0, 129.0, 157.0, 117.0}, {167.0, 72.0, 151.0, 129.0, 148.0, 124.0}, {164.0, 82.0, 143.0, 119.0, 150.0, 122.0}, {164.0, 57.0, 170.0, 151.0, 145.0, 123.0}, {165.0, 75.0, 152.0, 129.0, 149.0, 123.0}, {167.0, 57.0, 167.0, 148.0, 145.0, 125.0}, {164.0, 75.0, 145.0, 123.0, 149.0, 122.0}, {166.0, 76.0, 146.0, 123.0, 149.0, 123.0}, {166.0, 70.0, 159.0, 136.0, 148.0, 124.0}, {166.0, 73.0, 150.0, 127.0, 148.0, 123.0}, {165.0, 58.0, 165.0, 146.0, 145.0, 123.0}, {163.0, 75.0, 139.0, 119.0, 148.0, 121.0}, {166.0, 81.0, 143.0, 119.0, 150.0, 123.0}, {165.0, 86.0, 139.0, 114.0, 150.0, 122.0}, {164.0, 79.0, 144.0, 121.0, 150.0, 122.0}, {165.0, 60.0, 163.0, 144.0, 145.0, 123.0}, {164.0, 73.0, 149.0, 127.0, 148.0, 122.0}, {167.0, 56.0, 162.0, 145.0, 144.0, 124.0}, {164.0, 74.0, 148.0, 126.0, 148.0, 122.0}, {159.0, 85.0, 170.0, 140.0, 156.0, 116.0}, {159.0, 87.0, 166.0, 136.0, 156.0, 116.0}, {164.0, 84.0, 136.0, 113.0, 150.0, 122.0}, {163.0, 76.0, 138.0, 118.0, 148.0, 121.0}, {164.0, 81.0, 141.0, 118.0, 150.0, 122.0}, {164.0, 83.0, 144.0, 119.0, 151.0, 122.0}, {165.0, 70.0, 162.0, 138.0, 148.0, 123.0}, {165.0, 58.0, 165.0, 146.0, 145.0, 123.0}, {161.0, 81.0, 170.0, 141.0, 154.0, 118.0}, {167.0, 59.0, 162.0, 143.0, 145.0, 124.0}, {164.0, 81.0, 141.0, 118.0, 150.0, 122.0}, {151.0, 38.0, 106.0, 103.0, 137.0, 121.0}, {164.0, 72.0, 152.0, 130.0, 148.0, 122.0}, {163.0, 74.0, 141.0, 121.0, 148.0, 121.0}, {165.0, 78.0, 146.0, 123.0, 149.0, 123.0}, {163.0, 73.0, 146.0, 125.0, 148.0, 121.0}, {166.0, 70.0, 150.0, 128.0, 147.0, 124.0}, {164.0, 75.0, 144.0, 122.0, 149.0, 122.0}, {166.0, 70.0, 151.0, 130.0, 147.0, 124.0}, {164.0, 81.0, 142.0, 118.0, 149.0, 122.0}, {161.0, 81.0, 169.0, 140.0, 154.0, 118.0}, {159.0, 89.0, 157.0, 128.0, 156.0, 116.0}, {161.0, 83.0, 163.0, 134.0, 154.0, 118.0}, {163.0, 74.0, 141.0, 121.0, 148.0, 122.0}, {163.0, 73.0, 140.0, 120.0, 147.0, 121.0}, {161.0, 82.0, 165.0, 136.0, 154.0, 118.0}, {165.0, 78.0, 143.0, 120.0, 149.0, 123.0}, {164.0, 77.0, 141.0, 119.0, 148.0, 123.0}, {164.0, 85.0, 141.0, 116.0, 151.0, 122.0}, {165.0, 72.0, 144.0, 123.0, 147.0, 123.0}, {165.0, 73.0, 142.0, 121.0, 147.0, 123.0}, {147.0, 32.0, 107.0, 105.0, 135.0, 122.0}, {161.0, 88.0, 162.0, 132.0, 156.0, 117.0}, {165.0, 73.0, 148.0, 126.0, 148.0, 123.0}, {166.0, 78.0, 158.0, 132.0, 150.0, 123.0}, {166.0, 83.0, 141.0, 117.0, 150.0, 123.0}, {165.0, 80.0, 141.0, 118.0, 150.0, 123.0}, {163.0, 73.0, 142.0, 122.0, 148.0, 122.0}, {166.0, 74.0, 154.0, 131.0, 149.0, 124.0}, {165.0, 60.0, 165.0, 145.0, 146.0, 123.0}, {164.0, 83.0, 144.0, 119.0, 151.0, 122.0}, {164.0, 84.0, 140.0, 115.0, 150.0, 122.0}, {164.0, 84.0, 143.0, 118.0, 151.0, 122.0}, {165.0, 52.0, 164.0, 148.0, 143.0, 124.0}, {163.0, 73.0, 141.0, 121.0, 148.0, 122.0}, {160.0, 87.0, 169.0, 138.0, 156.0, 117.0}, {165.0, 82.0, 135.0, 113.0, 149.0, 123.0}, {166.0, 58.0, 174.0, 154.0, 146.0, 124.0}, {164.0, 75.0, 142.0, 121.0, 148.0, 122.0}, {167.0, 61.0, 180.0, 157.0, 147.0, 124.0}, {165.0, 80.0, 152.0, 127.0, 150.0, 123.0}, {164.0, 83.0, 155.0, 128.0, 152.0, 121.0}, {160.0, 92.0, 151.0, 122.0, 156.0, 117.0}, {159.0, 94.0, 165.0, 132.0, 158.0, 115.0}, {164.0, 82.0, 147.0, 122.0, 151.0, 122.0}, {165.0, 77.0, 127.0, 108.0, 147.0, 123.0}, {164.0, 78.0, 133.0, 112.0, 148.0, 122.0}, {164.0, 75.0, 161.0, 136.0, 151.0, 122.0}, {164.0, 78.0, 155.0, 130.0, 151.0, 122.0}, {164.0, 77.0, 132.0, 111.0, 147.0, 122.0}, {163.0, 79.0, 138.0, 116.0, 149.0, 121.0}, {164.0, 76.0, 160.0, 135.0, 151.0, 122.0}, {164.0, 77.0, 161.0, 135.0, 151.0, 122.0}, {162.0, 77.0, 154.0, 130.0, 151.0, 120.0}, {163.0, 77.0, 155.0, 131.0, 150.0, 121.0}, {161.0, 88.0, 158.0, 129.0, 155.0, 117.0}, {163.0, 77.0, 140.0, 118.0, 149.0, 121.0}, {163.0, 81.0, 131.0, 110.0, 149.0, 121.0}, {164.0, 82.0, 141.0, 117.0, 150.0, 121.0}, {164.0, 77.0, 134.0, 113.0, 148.0, 122.0}, {163.0, 79.0, 129.0, 109.0, 148.0, 122.0}, {163.0, 80.0, 156.0, 130.0, 151.0, 121.0}, {164.0, 83.0, 154.0, 127.0, 152.0, 121.0}, {163.0, 74.0, 160.0, 136.0, 150.0, 121.0}, {164.0, 66.0, 138.0, 121.0, 145.0, 123.0}, {164.0, 82.0, 158.0, 131.0, 152.0, 121.0}, {159.0, 94.0, 165.0, 132.0, 159.0, 115.0}, {164.0, 84.0, 142.0, 117.0, 151.0, 121.0}, {164.0, 74.0, 153.0, 131.0, 149.0, 122.0}, {160.0, 91.0, 164.0, 132.0, 157.0, 116.0}, {163.0, 75.0, 158.0, 134.0, 150.0, 121.0}, {164.0, 76.0, 159.0, 134.0, 151.0, 122.0}, {165.0, 79.0, 147.0, 123.0, 150.0, 123.0}, {164.0, 78.0, 143.0, 120.0, 149.0, 122.0}, {164.0, 77.0, 135.0, 114.0, 148.0, 122.0}, {164.0, 78.0, 158.0, 132.0, 151.0, 122.0}, {159.0, 95.0, 156.0, 125.0, 158.0, 115.0}, {164.0, 75.0, 160.0, 135.0, 150.0, 122.0}, {164.0, 82.0, 149.0, 123.0, 151.0, 121.0}, {163.0, 76.0, 161.0, 136.0, 151.0, 120.0}, {159.0, 94.0, 158.0, 127.0, 158.0, 115.0}, {164.0, 77.0, 155.0, 131.0, 150.0, 122.0}, {163.0, 82.0, 158.0, 131.0, 152.0, 121.0}, {165.0, 78.0, 142.0, 119.0, 149.0, 123.0}, {165.0, 70.0, 142.0, 123.0, 146.0, 123.0}, {164.0, 82.0, 157.0, 130.0, 152.0, 121.0}, {163.0, 86.0, 157.0, 129.0, 154.0, 120.0}, {164.0, 78.0, 162.0, 136.0, 151.0, 122.0}, {164.0, 77.0, 161.0, 134.0, 151.0, 122.0}, {163.0, 85.0, 158.0, 130.0, 154.0, 120.0}, {164.0, 76.0, 160.0, 135.0, 151.0, 122.0}, {164.0, 78.0, 155.0, 130.0, 151.0, 122.0}, {164.0, 75.0, 130.0, 110.0, 147.0, 122.0}, {163.0, 74.0, 160.0, 135.0, 150.0, 121.0}, {165.0, 76.0, 126.0, 107.0, 147.0, 123.0}, {165.0, 78.0, 129.0, 109.0, 147.0, 123.0}, {165.0, 77.0, 131.0, 111.0, 147.0, 123.0}, {164.0, 80.0, 161.0, 134.0, 152.0, 121.0}, {164.0, 76.0, 133.0, 113.0, 147.0, 123.0}, {164.0, 71.0, 159.0, 136.0, 149.0, 122.0}, {166.0, 79.0, 153.0, 128.0, 150.0, 123.0}, {165.0, 81.0, 137.0, 114.0, 149.0, 122.0}, {164.0, 75.0, 131.0, 111.0, 147.0, 122.0}, {164.0, 80.0, 159.0, 133.0, 152.0, 121.0}, {164.0, 80.0, 156.0, 130.0, 151.0, 121.0}, {166.0, 80.0, 142.0, 118.0, 149.0, 123.0}, {166.0, 78.0, 146.0, 123.0, 149.0, 124.0}, {163.0, 77.0, 158.0, 133.0, 151.0, 121.0}, {164.0, 76.0, 142.0, 121.0, 148.0, 122.0}, {164.0, 80.0, 160.0, 133.0, 151.0, 121.0}, {164.0, 84.0, 157.0, 129.0, 153.0, 121.0}, {163.0, 75.0, 134.0, 115.0, 147.0, 121.0}, {165.0, 78.0, 160.0, 134.0, 151.0, 122.0}, {164.0, 78.0, 133.0, 112.0, 148.0, 122.0}, {164.0, 82.0, 156.0, 129.0, 152.0, 121.0}, {163.0, 78.0, 141.0, 119.0, 149.0, 121.0}, {163.0, 78.0, 152.0, 128.0, 150.0, 121.0}, {165.0, 81.0, 137.0, 114.0, 149.0, 122.0}, {164.0, 77.0, 161.0, 135.0, 151.0, 122.0}, {163.0, 74.0, 135.0, 116.0, 147.0, 122.0}, {165.0, 67.0, 160.0, 138.0, 147.0, 123.0}, {164.0, 78.0, 158.0, 132.0, 151.0, 122.0}, {163.0, 74.0, 135.0, 115.0, 147.0, 122.0}, {160.0, 92.0, 152.0, 123.0, 156.0, 116.0}, {163.0, 77.0, 158.0, 133.0, 151.0, 121.0}, {164.0, 71.0, 162.0, 139.0, 149.0, 122.0}, {166.0, 63.0, 139.0, 123.0, 144.0, 124.0}, {164.0, 76.0, 140.0, 119.0, 148.0, 122.0}, {164.0, 71.0, 159.0, 136.0, 149.0, 122.0}, {163.0, 80.0, 158.0, 132.0, 152.0, 121.0}, {165.0, 79.0, 157.0, 131.0, 151.0, 122.0}, {164.0, 75.0, 162.0, 137.0, 150.0, 122.0}, {163.0, 76.0, 135.0, 114.0, 148.0, 122.0}, {164.0, 83.0, 156.0, 129.0, 152.0, 121.0}, {164.0, 85.0, 156.0, 128.0, 153.0, 121.0}, {163.0, 81.0, 134.0, 112.0, 149.0, 121.0}, {161.0, 88.0, 165.0, 135.0, 156.0, 117.0}, {163.0, 82.0, 152.0, 126.0, 152.0, 121.0}, {164.0, 80.0, 154.0, 128.0, 151.0, 122.0}, {164.0, 75.0, 161.0, 136.0, 150.0, 122.0}, {163.0, 78.0, 151.0, 126.0, 150.0, 121.0}, {165.0, 78.0, 141.0, 119.0, 149.0, 123.0}, {164.0, 80.0, 145.0, 121.0, 150.0, 122.0}, {164.0, 80.0, 157.0, 131.0, 152.0, 121.0}, {164.0, 78.0, 156.0, 131.0, 151.0, 122.0}, {164.0, 76.0, 141.0, 120.0, 148.0, 122.0}, {164.0, 74.0, 164.0, 139.0, 150.0, 122.0}, {164.0, 79.0, 131.0, 110.0, 148.0, 122.0}};
double coefficients[4][330] = {{1.0, 0.13801423790658837, 0.30193029972429736, 0.0, 0.3454298424539109, 1.0, 1.0, 0.2547784765488474, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.047303476891220914, -0.0, -0.0, -1.0, -0.881795666588289, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -1.0, -0.0, -0.0, -0.0, -0.11105371315413273, -0.0, -1.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.00012827090815802986, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -7.272880005679016e-05, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -4.699514057753068e-05, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -9.826078412105728e-05, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0}, {0.0, 0.0, 0.0, 0.00012827090815802986, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.9583735856047314, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.8642655816761677, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.5437123583540913, 0.4262208765673371, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.042516331009510536, 0.0, 1.0, -0.0, -1.0, -0.0, -1.0, -1.0, -1.0, -0.0, -0.0, -1.0, -1.0, -0.0, -1.0, -1.0, -1.0, -0.0, -1.0, -0.0, -0.0, -0.0, -1.0, -1.0, -1.0, -1.0, -1.0, -0.0, -1.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -1.0, -0.0, -1.0, -1.0, -0.0, -0.0, -0.0, -1.0, -0.0, -1.0, -1.0, -0.0, -0.7079419735760568, -1.0, -0.1271467596357831, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0074464445337118325, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.004256911690010053, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0011388369827510952, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0007386438683495153, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0}, {0.0, 0.0, 0.00011972394063432085, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0008706156441925079, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.010832740579529376, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.143611684456221, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.439359378203811, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.31195228231697825, 0.0, 0.43874453885194803, 1.0, 1.0, 1.0, 0.8060004916963044, 0.5882237802951742, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, -0.0, -0.0, -1.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -1.0, -0.0, -0.0, -0.0, -0.0, -0.0, -1.0, -0.0, -0.0, -1.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -1.0, -0.0, -0.0, -0.0, -1.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -1.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -1.0, -0.0, -1.0, -0.0, -0.0, -0.0, -1.0, -0.0, -0.0, -0.0, -0.0, -1.0, -0.0, -1.0, -0.0, -0.0, -0.0, -0.0, -1.0, -0.0, -0.0, -0.0, -0.0, -0.6982235225411194, -0.0, -1.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -1.0, -0.0, -1.0, -0.0, -0.02966863327931515, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -1.0, -0.0, -0.0, -0.0, -1.0, -0.0, -0.0, -0.0, -1.0, -0.0, -1.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.01843401174540938, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0}, {0.0, 0.0, 9.826078412105728e-05, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 7.203138873274714e-05, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.001805449462367861, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01598845582410758, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0024455559213017973, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.40763281059400835, 1.0, 0.0, 0.7988599813417971, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.07444817892383335, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.8333592563424833, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.47924006212911135, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.4489562423541398, 1.0, 1.0, 1.0, 1.0, 0.5855707844733671, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, -1.0, -0.5748716379504396, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -0.053195678208300214, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0, -1.0}};
double intercepts[10] = {-121.94009102571944, 1.9488199076449468, 0.6165239637687426, 0.9678687235924148, -73.68790750358734, -4.227025997275454, 1.3562921879195957, -52.96134598734288, -0.27471396053122976, -46.284469637986};
int weights[5] = {8, 34, 49, 132, 107};
int predict (double features[]) {
int i, j, k, d, l;
double kernels[N_VECTORS];
double kernel;
switch (KERNEL_TYPE) {
case 'l':
// <x,x'>
for (i = 0; i < N_VECTORS; i++) {
kernel = 0.;
for (j = 0; j < N_FEATURES; j++) {
kernel += vectors[i][j] * features[j];
}
kernels[i] = kernel;
}
break;
case 'p':
// (y<x,x'>+r)^d
for (i = 0; i < N_VECTORS; i++) {
kernel = 0.;
for (j = 0; j < N_FEATURES; j++) {
kernel += vectors[i][j] * features[j];
}
kernels[i] = pow((KERNEL_GAMMA * kernel) + KERNEL_COEF, KERNEL_DEGREE);
}
break;
case 'r':
// exp(-y|x-x'|^2)
for (i = 0; i < N_VECTORS; i++) {
kernel = 0.;
for (j = 0; j < N_FEATURES; j++) {
kernel += pow(vectors[i][j] - features[j], 2);
}
kernels[i] = exp(-KERNEL_GAMMA * kernel);
}
break;
case 's':
// tanh(y<x,x'>+r)
for (i = 0; i < N_VECTORS; i++) {
kernel = 0.;
for (j = 0; j < N_FEATURES; j++) {
kernel += vectors[i][j] * features[j];
}
kernels[i] = tanh((KERNEL_GAMMA * kernel) + KERNEL_COEF);
}
break;
}
int starts[N_ROWS];
int start;
for (i = 0; i < N_ROWS; i++) {
if (i != 0) {
start = 0;
for (j = 0; j < i; j++) {
start += weights[j];
}
starts[i] = start;
} else {
starts[0] = 0;
}
}
int ends[N_ROWS];
for (i = 0; i < N_ROWS; i++) {
ends[i] = weights[i] + starts[i];
}
if (N_CLASSES == 2) {
for (i = 0; i < N_VECTORS; i++) {
kernels[i] = -kernels[i];
}
double decision = 0.;
for (k = starts[1]; k < ends[1]; k++) {
decision += kernels[k] * coefficients[0][k];
}
for (k = starts[0]; k < ends[0]; k++) {
decision += kernels[k] * coefficients[0][k];
}
decision += intercepts[0];
if (decision > 0) {
return 0;
}
return 1;
}
double decisions[N_INTERCEPTS];
double tmp;
for (i = 0, d = 0, l = N_ROWS; i < l; i++) {
for (j = i + 1; j < l; j++) {
tmp = 0.;
for (k = starts[j]; k < ends[j]; k++) {
tmp += kernels[k] * coefficients[i][k];
}
for (k = starts[i]; k < ends[i]; k++) {
tmp += kernels[k] * coefficients[j - 1][k];
}
decisions[d] = tmp + intercepts[d];
d = d + 1;
}
}
int votes[N_INTERCEPTS];
for (i = 0, d = 0, l = N_ROWS; i < l; i++) {
for (j = i + 1; j < l; j++) {
votes[d] = decisions[d] > 0 ? i : j;
d = d + 1;
}
}
int amounts[N_CLASSES];
for (i = 0, l = N_CLASSES; i < l; i++) {
amounts[i] = 0;
}
for (i = 0; i < N_INTERCEPTS; i++) {
amounts[votes[i]] += 1;
}
int classVal = -1;
int classIdx = -1;
for (i = 0; i < N_CLASSES; i++) {
if (amounts[i] > classVal) {
classVal = amounts[i];
classIdx= i;
}
}
return classIdx;
}
int main(int argc, const char * argv[]) {
/* Features: */
double features[argc-1];
int i;
for (i = 1; i < argc; i++) {
features[i-1] = atof(argv[i]);
}
/* Prediction: */
printf("%d", predict(features));
return 0;
}