Python中的多元线性回归


9

我正在寻找实现多元线性回归的Python包。

(术语注释:多元回归处理的情况是一个以上因变量,而多元回归处理的情况是一个因变量但一个以上自变量。)


我对此也很感兴趣,但只需要非线性变换后的特征向量。因此,对于具有2个变量的2级模型为。[1,x1,x2,x1x2,x12,x22]
匹诺曹

Answers:


8

您仍然可以使用sklearn.linear_model.LinearRegression。只需使输出y成为具有与因变量一样多的列的矩阵。如果您想要非线性的东西,可以尝试使用不同的基函数,使用多项式特征或使用不同的回归方法(例如NN)。


1
您是否在专门询问多元逻辑回归?如您要一次执行多个分类?当然可以实施多元线性回归。要使用sklearn库,逻辑回归必须采用不同的框架。
jamesmf

糟糕,抱歉,我读错了,我正在阅读sklearn.linear_model.LogisticRegression文档,其中涉及线性回归。我将删除我的评论,以避免使将来的读者感到困惑。谢谢!
Franck Dernoncourt,2015年

希望您会强调如何获取多项式特征向量...
Pinocchio


2

seq=(d1,...,dN)Sum(seq)=i=1ND(1,2,3)x1x22x33

获取元组的代码是:

def generate_all_tuples_for_monomials(N,D):
    if D == 0:
        seq0 = N*[0]
        sequences_degree_0 = [seq0]
        S_0 = {0:sequences_degree_0}
        return S_0
    else:
        # S_all = [ k->S_D ] ~ [ k->[seq0,...,seqK]]
        S_all = generate_all_tuples_for_monomials(N,D-1)# S^* = (S^*_D-1) U S_D
        print(S_all)
        #
        S_D_current = []
        # for every prev set of degree tuples
        #for d in range(len(S_all.items())): # d \in [0,...,D_current]
        d = D-1
        d_new = D - d # get new valid degree number
        # for each sequences, create the new valid degree tuple
        S_all_seq_for_deg_d = S_all[d]
        for seq in S_all[d]:
            for pos in range(N):
                seq_new = seq[:]
                seq_new[pos] = seq_new[pos] + d_new # seq elements dd to D
                if seq_new not in S_D_current:
                    S_D_current.append(seq_new)
        S_all[D] = S_D_current
        return S_all

如果您知道线性代数,那么进行回归应该很容易。

c = pseudo_inverse(X_poly)*y

例。如果您对泛化感兴趣,则最好进行正则化线性回归。


Yuval致谢,请CS交换帮助。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.