将系数分配回多元线性回归中的分类变量

问题描述 投票:0回答:1

通过使用Sciki-learn运行多元线性回归,我需要获得一个方程Y = a + bX1 + cX2 + dX2 + eX3 + fX4 + gX5其中b,c,d,e,f和g是每个自变量的系数。

我已经使用Scikit-learn对3个类别变量(Cat V)和2个连续变量(Cont V)进行了多元线性回归,如下所示

    Cat V 1    Cat V 2    Cat V 3    Cont V 1    Cont V 2
    A          C3         X2         208         3000
    B          C6         X4         256         4000
    B          C7         X5         275         2000
    C          C2         X1         508         3200

我已经使用列转换器对分类数据进行了编码,这导致了更多的列,因为每个分类变量具有10多个不同的类别。我用来执行此操作的代码如下

    # Encoding categorical data
    mct = make_column_transformer((OneHotEncoder(drop='first'), [0, 1, 2]), remainder = 'passthrough')
    X = mct.fit_transform(X)

    # Splitting the dataset into the Training set and Test set
    X_train, X_test, y_train, y_test = train_test_split(X, y, 
    test_size=0.2, random_state = 0)

    # Fitting Multiple Linear Regression to the Training set
    regressor = LinearRegression()
    regressor.fit(X_train, y_train)

我已经使用[.coef_]函数和以下代码找到了每个变量的系数(编码后)>

    print(regressor.coef_)

问题是这显示了在编码中拆分后的变量系数,如下所示>>

    [ 1.80198679e-05 -5.55304459e-05  1.90462615e-03 -6.22320276e-05
  1.17184589e-03  .... -2.33744077e-03 -1.91538011e-04
  8.61626216e-11  3.73358813e-03]

我需要找到原始5个变量的5个系数。像

    Cat V 1     Coefficient 1
    Cat V 2     Coefficient 2
    Cat V 3     Coefficient 3
    Cont V 1    Coefficient 4
    Cont V 2    Coefficient 5

可以这样做吗?

[通过使用Sciki-learn进行多元线性回归,我需要获得一个像Y = a + bX1 + cX2 + dX2 + eX3 + fX4 + gX5的方程,其中b,c,d,e,f和g为每个...

python scikit-learn linear-regression one-hot-encoding
1个回答
0
投票

线性回归意味着您要在y = f(x)或y = f(x1,x2 ..)中搜索f作为连续变量。该机制不适用于类别:它认为与类别相对应的变量可以在C2和C3,C3和C4等之间平滑变化。当您创建多个列时,情况可能会变得更糟:现在,您有更多的变量试图适应f()的形状-明白我的意思吗?想一想类别的单列,y = f(c);现在您有了y = f(c1,c2 ...),每个变量都连续变化,并以此方式将类别少量混合(您的系数为10 ^ -5、10 ^ -6等)。

Logistic回归采用f()的形状为奇形(S型),其极限值为0和1,其间存在一个斜率;它在Cx和Cy之间是连续的,但是突然跳变。它通常与此类问题相关。作为多层感知器的神经网络不过是用花哨的名字(如AI,神经等)修饰的回归而已。它能解决您的问题吗?这取决于-时期。但是,通过运行这样的回归,调整参数和“学习”算法并使用热门主题词标记整个内容,发表了数十篇论文。

© www.soinside.com 2019 - 2024. All rights reserved.