Source code for gui.core.crossValidateMethods.cv_SVR

from PyQt5 import QtWidgets, QtCore
from sklearn.svm import SVR

from gui.ui.cv_SVR import Ui_Form
from gui.util.Modules import Modules


[docs] class Ui_Form(Ui_Form, Modules):
[docs] def setupUi(self, Form): super().setupUi(Form) self.checkMinAndMax() self.connectWidgets()
[docs] def get_widget(self): return self.formGroupBox
[docs] def setHidden(self, bool): self.get_widget().setHidden(bool)
[docs] def connectWidgets(self): svr = SVR() svr.kernel = 'rbf' svr.degree = 3 svr.gamma = 'auto' svr.coef0 = 0.0 svr.tol = 1e-3 svr.C = 1.0 svr.epsilon = 0.1 svr.shrinking = True svr.cache_size = 200 svr.verbose = False svr.max_iter = -1 self.cLineEdit.setText(str(svr.C)) self.epsilonLineEdit.setText(str(svr.epsilon)) self.kernel_list.setCurrentItem( self.kernel_list.findItems( 'Radial Basis Function', QtCore.Qt.MatchExactly )[0] ) self.degreeLineEdit.setText(str(svr.degree)) self.coeff0LineEdit.setText(str(svr.coef0)) self.shrinking_list.setCurrentItem( self.shrinking_list.findItems( str(svr.shrinking), QtCore.Qt.MatchExactly )[0] ) self.toleranceLineEdit.setText(str(svr.tol)) self.maxIterationsLineEdit.setText(str(svr.max_iter))
[docs] def run(self): kernel_lookup = { 'Radial Basis Function': 'rbf', 'Linear': 'linear', 'Polynomial': 'poly', 'Sigmoid': 'sigmoid', 'Precomputed': 'precomputed' } kernels = [kernel_lookup[i.text()] for i in self.kernel_list.selectedItems()] shrinking_items = [i.text() == 'True' for i in self.shrinking_list.selectedItems()] params = { 'C': [float(i) for i in self.cLineEdit.text().split(',')], 'epsilon': [float(i) for i in self.epsilonLineEdit.text().split(',')], 'kernel': kernels, 'gamma': ['auto'], 'shrinking': shrinking_items, 'tol': [float(i) for i in self.toleranceLineEdit.text().split(',')], 'cache_size': [200], 'verbose': [True], 'max_iter': [int(i) for i in self.maxIterationsLineEdit.text().split(',')] } if 'linear' in kernels: params['coef0'] = [float(i) for i in self.coeff0LineEdit.text().split(',')] if 'poly' in kernels: params['degree'] = [int(i) for i in self.degreeLineEdit.text().split(',')] return params
if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) Form = QtWidgets.QWidget() ui = Ui_Form() ui.setupUi(Form) Form.show() sys.exit(app.exec_())