通过使用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为每个...
线性回归意味着您要在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,神经等)修饰的回归而已。它能解决您的问题吗?这取决于-时期。但是,通过运行这样的回归,调整参数和“学习”算法并使用热门主题词标记整个内容,发表了数十篇论文。