def test_svm_classification2(self):
        train_out = svm_classification_train(table=self.iris, feature_cols=['sepal_length', 'sepal_width', 'petal_length', 'petal_width'], label_col='species', random_state=12345, c=0.5, group_by=['sepal_length', 'sepal_width'])
        predict_out = svm_classification_predict(table=self.iris, model=train_out['model'])

        table = predict_out['out_table'].values.tolist()

        self.assertListEqual(table[0][:6], [6.4, 3.2, 4.5, 1.5, 'versicolor', 'virginica'])
        self.assertAlmostEqual(table[0][6], 0.4762877808623251, places=10)
        self.assertAlmostEqual(table[0][7], 0.5237122191376749, places=10)

        self.assertListEqual(table[1][:6], [6.4, 3.2, 5.3, 2.3, 'virginica', 'versicolor'])
        self.assertAlmostEqual(table[1][6], 0.5237071857250375, places=10)
        self.assertAlmostEqual(table[1][7], 0.4762928142749625, places=10)

        self.assertListEqual(table[2][:6], [6.9, 3.1, 4.9, 1.5, 'versicolor', 'versicolor'])
        self.assertAlmostEqual(table[2][6], 0.604757991613619, places=10)
        self.assertAlmostEqual(table[2][7], 0.39524200838638096, places=10)

        self.assertListEqual(table[3][:6], [6.9, 3.1, 5.4, 2.1, 'virginica', 'versicolor'])
        self.assertAlmostEqual(table[3][6], 0.6634971835521454, places=10)
        self.assertAlmostEqual(table[3][7], 0.3365028164478546, places=10)

        self.assertListEqual(table[4][:6], [6.9, 3.1, 5.1, 2.3, 'virginica', 'versicolor'])
        self.assertAlmostEqual(table[4][6], 0.6634971838966314, places=10)
        self.assertAlmostEqual(table[4][7], 0.33650281610336863, places=10)
    def test_svm_classification1(self):
        train_out = svm_classification_train(table=self.iris, feature_cols=['sepal_length', 'sepal_width', 'petal_length', 'petal_width'], label_col='species', random_state=12345)
        predict_out = svm_classification_predict(table=self.iris, model=train_out['model'])

        table = predict_out['out_table'].values.tolist()
        self.assertListEqual(table[0][:6], [5.1, 3.5, 1.4, 0.2, 'setosa', 'setosa'])
        self.assertAlmostEqual(table[0][6], 0.9723943803243237, places=10)
        self.assertAlmostEqual(table[0][7], 0.01388056532410064 , places=10)
        self.assertAlmostEqual(table[0][8], 0.013725054351575833, places=10)

        self.assertListEqual(table[1][:6], [4.9, 3.0, 1.4, 0.2, 'setosa', 'setosa'])
        self.assertAlmostEqual(table[1][6], 0.9688766062899229, places=10)
        self.assertAlmostEqual(table[1][7], 0.01650331634583648 , places=10)
        self.assertAlmostEqual(table[1][8], 0.01462007736424048, places=10)

        self.assertListEqual(table[2][:6], [4.7, 3.2, 1.3, 0.2, 'setosa', 'setosa'])
        self.assertAlmostEqual(table[2][6], 0.9710812337223403, places=10)
        self.assertAlmostEqual(table[2][7], 0.013475834147364599, places=10)
        self.assertAlmostEqual(table[2][8], 0.01544293213029483, places=10)

        self.assertListEqual(table[3][:6], [4.6, 3.1, 1.5, 0.2, 'setosa', 'setosa'])
        self.assertAlmostEqual(table[3][6], 0.9652957979551062, places=10)
        self.assertAlmostEqual(table[3][7], 0.017692592660507486, places=10)
        self.assertAlmostEqual(table[3][8], 0.017011609384386128, places=10)

        self.assertListEqual(table[4][:6], [5.0, 3.6, 1.4, 0.2, 'setosa', 'setosa'])
        self.assertAlmostEqual(table[4][6], 0.972159479406423, places=10)
        self.assertAlmostEqual(table[4][7], 0.013441016065873218, places=10)
        self.assertAlmostEqual(table[4][8], 0.014399504527703685, places=10)
Beispiel #3
0
 def test_groupby1(self):
     df = load_iris()
     random_group = []
     for _ in range(len(df)):
         random_group.append(random.randint(1, 2))
     df['random_group'] = random_group
     
     train_out = svm_classification_train(table=df, feature_cols=['sepal_length', 'sepal_width', 'petal_length', 'petal_width'], label_col='species', group_by=['random_group'])
     predict_out = svm_classification_predict(table=df, model=train_out['model'])
Beispiel #4
0
 def test_predict_thresholds(self):
     iris = load_iris()
     
     df_splitted = split_data(table=iris, train_ratio=0.7, test_ratio=0.3)
     train_df = df_splitted['train_table']
     test_df = df_splitted['test_table']
     
     train_out = svm_classification_train(table=train_df, feature_cols=['sepal_length', 'sepal_width', 'petal_length', 'petal_width'], label_col='species')
     
     predict_out = svm_classification_predict(table=test_df, model=train_out['model'], thresholds=[0.1, 0.2, 0.3])
Beispiel #5
0
 def test1(self):
     iris = load_iris()
     
     df_splitted = split_data(table=iris, train_ratio=0.7, test_ratio=0.3)
     train_df = df_splitted['train_table']
     test_df = df_splitted['test_table']
     
     train_out = svm_classification_train(table=train_df, feature_cols=['sepal_length', 'sepal_width', 'petal_length', 'petal_width'], label_col='species')
     # print(train_out['model']['svc_model'])
     
     predict_out = svm_classification_predict(table=test_df, model=train_out['model'])
     print(predict_out['out_table'][['species', 'prediction']])
Beispiel #6
0
    def groupby1(self):
        df = get_iris()
        random_group = []
        for i in range(len(df)):
            random_group.append(random.randint(1, 2))
        df['random_group'] = random_group

        train_out = svm_classification_train(df,
                                             feature_cols=[
                                                 'sepal_length', 'sepal_width',
                                                 'petal_length', 'petal_width'
                                             ],
                                             label_col='species',
                                             group_by=['random_group'])
        predict_out = svm_classification_predict(df, train_out['model'])
        print(predict_out['out_table'][['species', 'prediction']])
Beispiel #7
0
    def predict_thresholds(self):
        iris = get_iris()

        df_splitted = split_data(iris, 0.7, 0.3)
        train_df = df_splitted['train_table']
        test_df = df_splitted['test_table']

        train_out = svm_classification_train(train_df,
                                             feature_cols=[
                                                 'sepal_length', 'sepal_width',
                                                 'petal_length', 'petal_width'
                                             ],
                                             label_col='species')
        # print(train_out['model']['svc_model'])

        predict_out = svm_classification_predict(test_df,
                                                 train_out['model'],
                                                 thresholds=[0.1, 0.2, 0.3])
        print(predict_out['out_table'][['species', 'prediction']])