# -*- coding: utf-8 -*-
# Generated by Django 1.11.5 on 2017-11-26 05:31
from __future__ import unicode_literals

from django.db import migrations, models
import jsonfield.fields
import picklefield.fields


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='SVC',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=100, verbose_name='Name')),
                ('engine_object', picklefield.fields.PickledObjectField(blank=True, editable=False, null=True)),
                ('engine_object_timestamp', models.DateTimeField(blank=True, null=True)),
                ('st_type', models.SmallIntegerField(blank=True, choices=[(0, 'General'), (1, 'Classification'), (2, 'Regression')], default=0, null=True)),
                ('metadata', jsonfield.fields.JSONField(blank=True, default={}, null=True)),
                ('engine_meta_iterations', models.SmallIntegerField(default=1)),
                ('engine_iterations', models.SmallIntegerField(blank=True, null=True)),
                ('results_storage', models.CharField(blank=True, max_length=100, null=True, verbose_name='Results Storage')),
                ('counter', models.IntegerField(blank=True, default=0, null=True)),
                ('counter_threshold', models.IntegerField(blank=True, null=True)),
                ('threshold_actions', models.CharField(blank=True, max_length=200, null=True)),
                ('sl_type', models.SmallIntegerField(blank=True, choices=[(0, 'Classification'), (1, 'Regression')], default=0, null=True)),
                ('penalty_parameter', models.FloatField(blank=True, default=1.0, help_text='Penalty parameter C of the error term.', null=True, verbose_name='Penalty Parameter')),
                ('kernel', models.CharField(blank=True, choices=[('linear', 'Linear'), ('poly', 'Polynomic'), ('rbf', 'RBF'), ('linear', 'Linear'), ('sigmoid', 'Sigmoid'), ('precomputed', 'Precomputed')], help_text='It must be one of ‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’ or a callable. If none is given, ‘rbf’ will be used. If a callable is given it is used to pre-compute the kernel matrix from data matrices; that matrix should be an array of shape (n_samples, n_samples).', max_length=50, null=True, verbose_name='SVM Kernel')),
                ('kernel_poly_degree', models.IntegerField(blank=True, default=3, help_text='Degree of the polynomial kernel function (‘poly’). Ignored by all other kernels.', null=True)),
                ('kernel_coefficient', models.FloatField(blank=True, help_text='Kernel coefficient for ‘rbf’, ‘poly’ and ‘sigmoid’. Leave blank "for automatic" (1/n_features will be used)', null=True, verbose_name='Kernel coefficient (fixed)')),
                ('kernel_independent_term', models.FloatField(blank=True, default=0.0, help_text='Independent term in kernel function. It is only significant in "poly" and "sigmoid".', null=True)),
                ('estimate_probability', models.BooleanField(default=False, help_text='Whether to enable probability estimates. This must be enabled prior to calling fit, and will slow down that method')),
                ('use_shrinking', models.BooleanField(default=True, help_text='Whether to use the shrinking heuristic.')),
                ('tolerance', models.FloatField(blank=True, default='1e-3', help_text='Tolerance for stopping criterion.', null=True)),
                ('cache_size', models.FloatField(blank=True, help_text='Specify the size of the kernel cache (in MB).', null=True, verbose_name='Kernel Cache Size (MB)')),
                ('class_weight', models.CharField(blank=True, help_text='Set the parameter C of class i to class_weight[i]*C for SVC. If not given, all classes are supposed to have weight one. The “balanced” mode uses the values of y to automatically adjust weights inversely proportional to class frequencies in the input data as n_samples / (n_classes * np.bincount(y))', max_length=50, null=True, verbose_name='Class Weight')),
                ('verbose', models.BooleanField(default=False, help_text='Enable verbose output. Note that this setting takes advantage of a per-process runtime setting in libsvm that, if enabled, may not work properly in a multithreaded context.', verbose_name='Verbose')),
                ('decision_function_shape', models.CharField(blank=True, choices=[('ovo', 'One-VS-One'), ('ovr', 'One-VS-Rest')], default='ovr', help_text='Whether to return a one-vs-rest (‘ovr’) decision function of shape (n_samples, n_classes) as all other classifiers, or the original one-vs-one (‘ovo’) decision function of libsvm which has shape (n_samples, n_classes * (n_classes - 1) / 2).', max_length=10, null=True, verbose_name='Decision Function Shape')),
                ('random_seed', models.IntegerField(blank=True, help_text='The seed of the pseudo random number generator to use when shuffling the data. If int, random_state is the seed used by the random number generator; If RandomState instance, random_state is the random number generator; If None, the random number generator is the RandomState instance used by np.random.', null=True, verbose_name='Random Seed')),
                ('image', models.ImageField(blank=True, help_text='Auto-generated Image if available', null=True, upload_to='', verbose_name='Image')),
            ],
            options={
                'verbose_name': 'Support Vector Machine - Classification',
                'verbose_name_plural': 'Support Vector Machines - Classification',
            },
        ),
    ]
