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 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_())