• 余泽锋
    2019-04-24
    import numpy as np
    X = np.mat([[1, 3, -7], [2, 5, 4], [-3, -7, -2], [1, 4, -12]])
    Y = np.mat([[-7.5], [5.2], [-7.5], [-15]])
    B1 = X.transpose().dot(X).I
    B2 = B1.dot(X.transpose())
    B = B2.dot(Y)
    '''
    matrix([[12.01208791],
            [-4.35934066],
            [ 0.82527473]])
    '''
    展开
    
     2
  • Joe
    2019-03-21
    回答与疑问:
    1. 非线性关系的数据拟合,可以先将自变量转为非线性。如转化为多项式(sklearn的PolynomialFeatures)。再用线性回归的方法去拟合。
    2. 请问老师对于求解逆矩阵有没有什么高效的方法?
    附上以前写的polyfit方法,请老师指点。谢谢
        def oneDPolynomiaTransform(self, x_origin):
            '''
            @description: generate polynomial for 1D input data. rule: [x0, x0^2, x0^3,...,x0^degreee]
            @param {type} x_origin- data before transformed[nX1]
            @return: x_transformed- data after transformed[nXdegree]
            '''
            len_features = len(x_origin)
            # polynomial feature data after transformed.
            x_transformed = np.array([])
            for i in range(len_features):
                for j in range(self.degree+1):
                    x_transformed = np.append(
                        x_transformed, [(x_origin[i])**(j)])
            x_transformed = x_transformed.reshape(-1, self.degree+1)
            return x_transformed
    展开

    作者回复: 写得很好,至于逆矩阵更好的求法,我要查一下资料看看有无更优的解。

    
     1
  • Ronnyz
    2019-10-22
    from numpy import *

    x=mat([[1,3,-7],[2,5,4],[-3,-7,-2],[1,4,-12]])

    y=mat([[-7.5],[5.2],[-7.5],[-15]])

    print("\n系数矩阵B:\n",(x.transpose().dot(x)).I.dot(x.transpose()).dot(y))

    系数矩阵B:

     [[12.01208791]

     [-4.35934066]

     [ 0.82527473]]
    展开
    
    
  • Paul Shan
    2019-10-04
    高斯消元求得是精确解。
    线性回归求得是最好近似解,覆盖高斯消元能处理的情况,也能在没有精确解的时候找到近似解,还提供测量近似参数,是处理线性关系的利器。
    
    
  • 叮当猫
    2019-04-17
    文中有提到,如何判断一个数据集是否可以用线性模型来表示,可以使用决定系数R2,随着自变量个数不断增加,R2将不断增大,这时需要用Rc2,而其中R2就是regression.score,那请问Rc2是库里面的什么呢?

    作者回复: 这是个好问题,我查了sklearn.linear_mode好像不提供这个数据。

    你可以尝试一下statsmodels.api.OLS这个包,里面应该可以返回rsquared_adj

    
    
  • qinggeouye
    2019-03-30
    """
    思考题同理
    """
    x = np.mat([[1, 3, -7], [2, 5, 4], [-3, -7, -2], [1, 4, -12]])
    y = np.mat([[-7.5], [5.2], [-7.5], [-15]])
    print("\n 系数矩阵 B: \n", (x.transpose().dot(x)).I.dot(x.transpose()).dot(y))

     系数矩阵 B:
     [[12.01208791]
     [-4.35934066]
     [ 0.82527473]]
    展开
    
    
  • Cest la vie
    2019-03-25
    老师好! 后面可以来一节PLS偏最小二乘的原理讲解和应用么

    作者回复: 可以考虑到后面加餐的时候来一篇

    
    
我们在线,来聊聊吧