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)
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'])
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])
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']])
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']])
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']])