AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / coding / Perguntas / 78896474
Accepted
Giampaolo Levorato
Giampaolo Levorato
Asked: 2024-08-21 18:35:55 +0800 CST2024-08-21 18:35:55 +0800 CST 2024-08-21 18:35:55 +0800 CST

Como obter coeficientes do modelo glm em python

  • 772

Treinei o seguinte modelo glm em Python:

fitGlm = smf.glm( listOfInModelFeatures,
              family=sm.families.Binomial(),data=train, freq_weights = train['model_weight']).fit()

Em seguida, produzi o resumo do modelo treinado:

    print(fitGlm.summary())

que fornece o seguinte relatório:

                 Generalized Linear Model Regression Results                  
==============================================================================
Dep. Variable:                 Target   No. Observations:              1065046
Model:                            GLM   Df Residuals:               4361436.81
Model Family:                Binomial   Df Model:                            8
Link Function:                  Logit   Scale:                          1.0000
Method:                          IRLS   Log-Likelihood:            -6.1870e+05
Date:                Wed, 21 Aug 2024   Deviance:                   1.2374e+06
Time:                        10:27:37   Pearson chi2:                 4.01e+06
No. Iterations:                     8   Pseudo R-squ. (CS):             0.1479
Covariance Type:            nonrobust                                         
===============================================================================
                  coef    std err          z      P>|z|      [0.025      0.975]
-------------------------------------------------------------------------------
Intercept       3.2619      0.003   1126.728      0.000       3.256       3.268
e1_a_11_sp      0.9318      0.004    256.254      0.000       0.925       0.939
sp_g_37         0.5850      0.006    102.522      0.000       0.574       0.596
sp_f3_35        0.6510      0.005    135.114      0.000       0.642       0.660
e1_a_07_sp      0.4930      0.006     79.698      0.000       0.481       0.505
e1_e_02_sp      0.9956      0.008    120.253      0.000       0.979       1.012
e1_b_03_sp      0.7493      0.013     56.539      0.000       0.723       0.775
e2_k_02_spa     0.4996      0.014     34.512      0.000       0.471       0.528
ea5_s_01_sp     0.3305      0.008     41.524      0.000       0.315       0.346
===============================================================================

Pergunta : como obtenho a lista de coeficientes para cada recurso (incluindo a interceptação)? Quero dizer, como consigo algo assim?

[3.2619,0.9318,0.5850,0.6510,0.4930,0.9956,0.7493,0.4996,0.3305]

Desde já, obrigado.

python
  • 2 2 respostas
  • 14 Views

2 respostas

  • Voted
  1. Best Answer
    Franta Marada
    2024-08-21T20:20:48+08:002024-08-21T20:20:48+08:00

    Para extrair a lista de coeficientes do seu modelo GLM treinado em Python usando statsmodels, você pode usar o atributo params do objeto de modelo ajustado. Isso lhe dará um objeto pandas.Series onde o índice contém os nomes dos recursos (incluindo a interceptação) e os valores são os coeficientes correspondentes.

    Veja como você pode fazer isso:

    # Extract the coefficients from the fitted model
    coefficients = fitGlm.params
    
    # Convert the coefficients to a list
    coefficients_list = coefficients.tolist()
    
    # Print the list of coefficients
    print(coefficients_list)
    

    Explicação: fitGlm.params: Isso fornece um pandas.Series com os nomes dos recursos como índice e os coeficientes correspondentes como valores. tolist(): Este método converte pandas.Series em uma lista Python, que fornece apenas os coeficientes numéricos. Dado o seu exemplo, este código produzirá a lista:

    [3.2619, 0.9318, 0.5850, 0.6510, 0.4930, 0.9956, 0.7493, 0.4996, 0.3305]
    

    Esta lista inclui o intercepto como o primeiro valor seguido pelos coeficientes de cada recurso na ordem em que aparecem no modelo.

    • 1
  2. Giampaolo Levorato
    2024-08-21T18:39:20+08:002024-08-21T18:39:20+08:00

    Ordenado!

    Eu preciso usar algo assim:

    print(fitGlm.params["e1_a_11_sp"])
    print(fitGlm.params["sp_g_37"])
    
    • 0

relate perguntas

  • Como divido o loop for em 3 quadros de dados individuais?

  • Como verificar se todas as colunas flutuantes em um Pandas DataFrame são aproximadamente iguais ou próximas

  • Como funciona o "load_dataset", já que não está detectando arquivos de exemplo?

  • Por que a comparação de string pandas.eval() retorna False

  • Python tkinter/ ttkboostrap dateentry não funciona quando no estado somente leitura

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Por que esse código Java simples e pequeno roda 30x mais rápido em todas as JVMs Graal, mas não em nenhuma JVM Oracle?

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Quando devo usar um std::inplace_vector em vez de um std::vector?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Marko Smith

    Estou tentando fazer o jogo pacman usando apenas o módulo Turtle Random e Math

    • 1 respostas
  • Martin Hope
    Aleksandr Dubinsky Por que a correspondência de padrões com o switch no InetAddress falha com 'não cobre todos os valores de entrada possíveis'? 2024-12-23 06:56:21 +0800 CST
  • Martin Hope
    Phillip Borge Por que esse código Java simples e pequeno roda 30x mais rápido em todas as JVMs Graal, mas não em nenhuma JVM Oracle? 2024-12-12 20:46:46 +0800 CST
  • Martin Hope
    Oodini Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores? 2024-12-12 06:27:11 +0800 CST
  • Martin Hope
    sleeptightAnsiC `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso? 2024-11-09 07:18:53 +0800 CST
  • Martin Hope
    The Mad Gamer Quando devo usar um std::inplace_vector em vez de um std::vector? 2024-10-29 23:01:00 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST
  • Martin Hope
    MarkB Por que o GCC gera código que executa condicionalmente uma implementação SIMD? 2024-02-17 06:17:14 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve