| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- from library.exercise import Exercise
- from library.dataset import DataSet, TrainTestData
- from library.GanExamples import StupidToyListGan
- from library.SimpleGan import SimpleGan
- from library.Repeater import Repeater
- import pickle
- import numpy as np
- import random
- from imblearn.datasets import fetch_datasets
- def loadDataset(datasetName):
- pickle_in = open(f"{datasetName}.pickle", "rb")
- pickle_dict = pickle.load(pickle_in)
- myData = pickle_dict["folding"]
- k = myData[0]
- labels = np.concatenate((k[1], k[3]), axis=0).astype(float)
- features = np.concatenate((k[0], k[2]), axis=0).astype(float)
- label_1 = list(np.where(labels == 1)[0])
- label_0 = list(np.where(labels == 0)[0])
- features_1 = features[label_1]
- features_0 = features[label_0]
-
- return DataSet(data0=features_0, data1=features_1)
- def getRandGen(initValue, incValue=257, multValue=101, modulus=65537):
- value = initValue
- while True:
- value = ((multValue * value) + incValue) % modulus
- yield value
-
- def genShuffler():
- randGen = getRandGen(2021)
- def shuffler(data):
- data = list(data)
- size = len(data)
- shuffled = []
- while size > 0:
- p = next(randGen) % size
- size -= 1
- shuffled.append(data[p])
- data = data[0:p] + data[(p + 1):]
- return np.array(shuffled)
- return shuffler
- def runExerciseForSimpleGAN(datasetName):
- ganName = "SimpleGAN"
- print()
- print()
- print("///////////////////////////////////////////")
- print(f"// Running {ganName} on {datasetName}")
- print("///////////////////////////////////////////")
- print()
- data = loadDataset(f"data_input/{datasetName}")
- gan = SimpleGan(numOfFeatures=data.data0.shape[1])
- random.seed(2021)
- shuffler = genShuffler()
- exercise = Exercise(shuffleFunction=shuffler, numOfShuffles=5, numOfSlices=5)
- exercise.run(gan, data)
- exercise.saveResultsTo(f"data_result/{datasetName}-{ganName}.csv")
- exercise.saveResultsTo(f"data_result/{ganName}-{datasetName}.csv")
-
-
- def runExerciseForRepeater(datasetName):
- ganName = "Repeater"
- print()
- print()
- print("///////////////////////////////////////////")
- print(f"// Running {ganName} on {datasetName}")
- print("///////////////////////////////////////////")
- print()
- data = loadDataset(f"data_input/{datasetName}")
- gan = Repeater()
- random.seed(2021)
- shuffler = genShuffler()
- exercise = Exercise(shuffleFunction=shuffler, numOfShuffles=5, numOfSlices=5)
- exercise.run(gan, data)
- exercise.saveResultsTo(f"data_result/{datasetName}-{ganName}.csv")
- exercise.saveResultsTo(f"data_result/{ganName}-{datasetName}.csv")
-
- testSets = [
- "folding_abalone_17_vs_7_8_9_10",
- "folding_abalone9-18",
- "folding_car_good",
- "folding_car-vgood",
- "folding_flare-F",
- "folding_hypothyroid",
- "folding_kddcup-guess_passwd_vs_satan",
- "folding_kr-vs-k-three_vs_eleven",
- "folding_kr-vs-k-zero-one_vs_draw",
- "folding_shuttle-2_vs_5",
- "folding_winequality-red-4",
- "folding_yeast4",
- "folding_yeast5",
- "folding_yeast6"
- ]
- def runAllTestSets(dataSetList):
- for dsFileName in dataSetList:
- runExerciseForSimpleGAN(dataSetList)
- runExerciseForRepeater(dataSetList)
|