statsmodel.api VS sklearn.lienar_model - PullRequest
       47

statsmodel.api VS sklearn.lienar_model

0 голосов
/ 29 сентября 2019

Я изучаю sklearn.linear_model и statsmodel.api, где я использую метод smf.ols.Используя stats.linear_model, я могу напрямую создать свою модель.Например, smf.ols(Y~X**2), как в R, мы можем удалить переменные, которые имеют высокую корреляцию, или если они должны быть в квадрате.Но используя sklearn, я просто помещаю LinearRegression() в свои данные.Поэтому я не вижу модель, которую он строит.Неужели я не увижу модельное уравнение?Примечание. Я попытался использовать этот метод для своих данных и получил совершенно другое значение R 2 .

statsmodel

import statsmodels.formula.api as smf

model1_scaledstp = smf.ols('profit ~ rd_spend + administration+marketing_spend + california + florida', data = stp_n).fit()

stp_pred = model1_scaledstp.predict(stp_n)

from sklearn.metrics import mean_squared_error, r2_score

rmse = mean_squared_error(y, stp_pred)
r2 = r2_score(y, stp_pred)

склеарн линейная регрессия

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)
from sklearn.linear_model import LinearRegression
reg = LinearRegression()
reg.fit(X_train, y_train)

y_pred = reg.predict(X_test)
from sklearn.metrics import r2_score
r2_score(y_test, y_pred)
  • R 2 : statsmodel = 0,643 ++
  • r 2 : sklearn linear_model = 0,4 ++

Разница большая.

...