コード例 #1
0
ファイル: main_ezp.py プロジェクト: payamesfandiari/payam
dataset_name = 'fertility/'
data_path = 'datasets_v1/{0}data'.format(dataset_name)
trueclass = 'datasets_v1/{0}trueclass'.format(dataset_name)
train_file = 'datasets_v1/{0}train.bsp'.format(dataset_name)
test_file = 'datasets_v1/{0}test.bsp'.format(dataset_name)
model_file = 'datasets_v1/{0}model.bsp'.format(dataset_name)
p = Problem(data_path,trueclass,change0=True)

err = 0
err_rnd = 0
train_ops = "-z 2 -zs 1000 -i 100 -l 10000"
test_ops = "-f 1 -s 4"

for rnd in range(10):
    randomclass = 'datasets_v1/{0}random_class.{1}'.format(dataset_name, rnd)
    X,y,X_t,y_t = p.getuserrandomclass(randomclass)
    wbsp.write_bsp(train_file,X,y)
    wbsp.write_bsp(test_file,X_t,y_t)
    out = sub.check_output('./exe/train {0} {1} {2}'.format(train_ops,train_file,model_file),shell=True)

    out = sub.check_output('./exe/predict {0} {1} {2} {3}'.format(test_ops,train_file,model_file,train_file+".tr"),shell=True)
    out = sub.check_output('./exe/predict {0} {1} {2} {3}'.format(test_ops,test_file,model_file,test_file+".tr"),shell=True)
    X_train_trans,X_test_trans = np.loadtxt(train_file+".tr"),np.loadtxt(test_file+".tr")
    X_train_trans,X_test_trans = X_train_trans[:,1:],X_test_trans[:,1:]
    clf = LinearSVC(C=0.001,tol= 0.00001,dual = False)
    clf.fit(X_train_trans,y)
    err_rnd = 1 - clf.score(X_test_trans,y_t)
    err += err_rnd
    print('Dataset : %s Random Class : %s -> %s'%(dataset_name,rnd,100 * err_rnd))
    remove(train_file+".tr")
    remove(test_file+".tr")