Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

376
Visualizações
python sklearn visualización de regresión lineal múltiple r-squared

Calculé mi ecuación de regresión lineal múltiple y quiero ver el R-cuadrado ajustado. Sé que la función de puntuación me permite ver r-squared, pero no está ajustada.

 import pandas as pd #import the pandas module import numpy as np df = pd.read_csv ('/Users/jeangelj/Documents/training/linexdata.csv', sep=',') df AverageNumberofTickets NumberofEmployees ValueofContract Industry 0 1 51 25750 Retail 1 9 68 25000 Services 2 20 67 40000 Services 3 1 124 35000 Retail 4 8 124 25000 Manufacturing 5 30 134 50000 Services 6 20 157 48000 Retail 7 8 190 32000 Retail 8 20 205 70000 Retail 9 50 230 75000 Manufacturing 10 35 265 50000 Manufacturing 11 65 296 75000 Services 12 35 336 50000 Manufacturing 13 60 359 75000 Manufacturing 14 85 403 81000 Services 15 40 418 60000 Retail 16 75 437 53000 Services 17 85 451 90000 Services 18 65 465 70000 Retail 19 95 491 100000 Services from sklearn.linear_model import LinearRegression model = LinearRegression() X, y = df[['NumberofEmployees','ValueofContract']], df.AverageNumberofTickets model.fit(X, y) model.score(X, y) >>0.87764337132340009

Lo verifiqué manualmente y 0.87764 es R-cuadrado; mientras que 0.863248 es el R-cuadrado ajustado.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Hay muchas formas diferentes de calcular R^2 y el adjusted R^2 , los siguientes son algunos de ellos (calculados con los datos que proporcionó):

 from sklearn.linear_model import LinearRegression model = LinearRegression() X, y = df[['NumberofEmployees','ValueofContract']], df.AverageNumberofTickets model.fit(X, y)

SST = SSR + SSE ( definiciones de referencia )

 # compute with formulas from the theory yhat = model.predict(X) SS_Residual = sum((y-yhat)**2) SS_Total = sum((y-np.mean(y))**2) r_squared = 1 - (float(SS_Residual))/SS_Total adjusted_r_squared = 1 - (1-r_squared)*(len(y)-1)/(len(y)-X.shape[1]-1) print r_squared, adjusted_r_squared # 0.877643371323 0.863248473832 # compute with sklearn linear_model, although could not find any function to compute adjusted-r-square directly from documentation print model.score(X, y), 1 - (1-model.score(X, y))*(len(y)-1)/(len(y)-X.shape[1]-1) # 0.877643371323 0.863248473832

De otra manera:

 # compute with statsmodels, by adding intercept manually import statsmodels.api as sm X1 = sm.add_constant(X) result = sm.OLS(y, X1).fit() #print dir(result) print result.rsquared, result.rsquared_adj # 0.877643371323 0.863248473832

Otra forma más:

 # compute with statsmodels, another way, using formula import statsmodels.formula.api as sm result = sm.ols(formula="AverageNumberofTickets ~ NumberofEmployees + ValueofContract", data=df).fit() #print result.summary() print result.rsquared, result.rsquared_adj # 0.877643371323 0.863248473832
over 4 years ago · Santiago Trujillo Relatório

0

regressor = LinearRegression(fit_intercept=False) regressor.fit(x_train, y_train) print(f'r_sqr value: {regressor.score(x_train, y_train)}')
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda