Example #1
0
    def fit(self, x_data, y_data, kernel='std', alpha=0.1):
        #x_1 = (inv_by_adjugate(midPointMatrix(x.T.dot(x))))
        #self._preProcessingData(x,y)

        #First part of method minimum square
        if (kernel == 'std'):
            x = Rdmia.array(x_data)
            y = Rdmia.array(y_data)

            x_1 = x.T.dot(x).midPointMatrix

            x_1 = x_1.I

            #y_2 = midPointMatrix(x.T.dot(y))
            y_2 = x.T.dot(y).midPointMatrix

            #Calculated predictors beta
            z = (x_1).dot(y_2)

            self._predictors = Rdmia.array(
                [z.data[i][0] for i in range(len(z.data))])
        elif (kernel == 'multidimensional'):
            self._isMult = True

            opt_minium = 0.0
            opt_maximum = 0.0
            for i in np.arange(0.0, 1.0, alpha):
                x = Rdmia.arrayAlpha(x_data, i)
                y_min, y_max = Rdmia.arrayMinMax(y_data)

                x_1 = x.T.dot(x)

                x_1 = x_1.I

                #y_2 = midPointMatrix(x.T.dot(y))
                y_2_min = x.T.dot(y_min)
                y_2_max = x.T.dot(y_max)

                #Calculated predictors beta
                z_min = (x_1).dot(y_2_min)
                z_max = (x_1).dot(y_2_max)

                #print(z.data)

                #self._predictorsLow = (Rdmia.array([z_min.data[i][0] for i in range(len(z_min.data))]))
                #self._predictorsUp = (Rdmia.array([z_max.data[i][0] for i in range(len(z_max.data))]))

                opt_min, opt_max = self._optimizations(x_data, (Rdmia.array(
                    [z_min.data[i][0]
                     for i in range(len(z_min.data))])), (Rdmia.array(
                         [z_max.data[i][0] for i in range(len(z_max.data))])),
                                                       y_min, y_max)

                if (i == 0):
                    self._predictorsLow = (Rdmia.array(
                        [z_min.data[i][0] for i in range(len(z_min.data))]))
                    self._predictorsUp = (Rdmia.array(
                        [z_max.data[i][0] for i in range(len(z_max.data))]))
                    opt_minimum = opt_min
                    opt_maximum = opt_max
                elif (opt_min < opt_minium):
                    self._predictorsLow = (Rdmia.array(
                        [z_min.data[i][0] for i in range(len(z_min.data))]))
                    opt_minimum = opt_min
                elif (opt_max < opt_maximum):
                    self._predictorsUp = (Rdmia.array(
                        [z_max.data[i][0] for i in range(len(z_max.data))]))
                    opt_maximum = opt_max

        #Calculte Status
        y_pred = self.predict(x_data)
        self._coefDetermination = self._coefDetermination(y_data, y_pred)
        self._rmse = self._RMSE(y_data, y_pred)
        print("### STATISTICS OF MODEL ###")
        print("# RMSE: ", self._rmse)
        print("# Coefficiente of Determination: ", self._coefDetermination)
        print("#")
Example #2
0
	[Rdmia.number(70,112)],
	[Rdmia.number(54,72)],
	[Rdmia.number(70,100)],
	[Rdmia.number(63,75)],
	[Rdmia.number(72,100)],
	[Rdmia.number(76,98)],
	[Rdmia.number(86,96)],
	[Rdmia.number(86,100)]
	])

	y = [[Rdmia.number(44,68)],
	[Rdmia.number(60,72)],
	[Rdmia.number(56,90)],
	[Rdmia.number(70,112)],
	[Rdmia.number(54,72)],
	[Rdmia.number(70,100)],
	[Rdmia.number(63,75)],
	[Rdmia.number(72,100)],
	[Rdmia.number(76,98)],
	[Rdmia.number(86,96)],
	[Rdmia.number(86,100)]
	]
	'''

    y = Rdmia.array([[25], [13], [8], [20]])

    regressor = RLS()
    regressor.fit(x, y)
    ypred = regressor.predict(y)
    print(regressor)