i den här handledningen ser du hur du utför flera linjära regression i Python med både sklearn och statsmodels.,l>

  1. granska exemplet som ska användas i den här handledningen
  2. kontrollera för linearitet
  3. utföra flera linjär regression i Python
  4. lägga till en Tkinter grafiskt användargränssnitt (GUI) för att samla indata från användare, och sedan visa förutsägelse resultat

i slutet av denna handledning, kommer du att kunna skapa följande gränssnitt i Python:

exempel på multipel linjär regression i Python

i följande exempel kommer vi att använda flera linjär regression för att förutsäga aktieindexpriset (i.,e., den beroende variabeln) i en fiktiv ekonomi genom att använda 2 oberoende/input variabler:

  • ränta
  • arbetslöshet

Observera att du måste validera att flera antaganden uppfylls innan du tillämpar linjära regressionsmodeller. Framför allt måste du se till att det finns ett linjärt förhållande mellan den beroende variabeln och den oberoende variabeln/s (mer om det under avsnittet kontroll av linearitet).,

låt oss nu hoppa in i datauppsättningen som vi kommer att använda:

för att starta kan du fånga ovanstående datauppsättning i Python med Pandas DataFrame (för större datauppsättningar kan du överväga att importera dina data):

kontrollera efter linjäritet

innan du utför en linjär regressionsmodell, är det lämpligt att validera att datauppsättningen är vissa antaganden är uppfyllda.

som noterats tidigare kanske du vill kontrollera att det finns ett linjärt förhållande mellan den beroende variabeln och den oberoende variabeln/s.,

i vårt exempel kanske du vill kontrollera att det finns ett linjärt förhållande mellan:

för att utföra en snabb linjäritetskontroll kan du använda scatter-diagram (med hjälp av matplotlib-biblioteket). Du kan till exempel använda koden nedan för att rita förhållandet mellan Stock_Index_Price och Interet_rate:

Du kommer att märka att indeed har ett linjärt förhållande mellan Stock_Index_Price och Interest_Rate.,ates går upp, aktieindexpriset går också upp:

och för det andra fallet kan du använda den här koden för att rita förhållandet mellan Stock_Index_Price och Unemployment_Rate:

som du kan se finns det också ett linjärt förhållande mellan Stock_Index_Price och Unemployment_Rate – när arbetslöshetsgraden går upp, aktieindex_price och Unemployment_Rate:

priset går ner (här har vi fortfarande ett linjärt förhållande, men med en negativ lutning):

därefter kommer vi att utföra den faktiska multipla linjära regressionen i Python.,

utför den multipla linjära regressionen

När du har lagt till data i Python kan du använda både sklearn och statsmodels för att få regressionsresultaten.

endera metoden skulle fungera, men låt oss granska båda metoderna för illustrationsändamål.

Du kan sedan kopiera koden nedan till Python:

När du kör koden i Python, kommer du att observera tre delar:

(1) den första delen visar produktionen som genereras av sklearn:

denna utgång innehåller intercept och koefficienter., Du kan använda denna information för att bygga multipel linjär regression equation enligt följande:

Stock_Index_Price = (Intercept) + (Interest_Rate coef)*X1 + (Unemployment_Rate coef)*X2

Och när du ansluter siffror:

Stock_Index_Price = (1798.4040) + (345.5401)*X1 + (-250.1466)*X2

(2) Den andra delen visar den förväntade produktionen med hjälp av sklearn:

Tänk dig att du vill förutsäga aktieindex pris när du har samlat in följande data:

  • Ränte = 2.75 (dvs, X1= 2.75)
  • det Relativa Arbetslöshetstalet = 5.3 (dvs, X2= 5.3)

Om du plug-in data i regressionsekvationen, får du samma förutsägbara resultat som visas i den andra delen:

Stock_Index_Price = (1798.4040) + (345.5401)*(2.75) + (-250.1466)*(5.3) = 1422.86

(3) Den tredje delen visas en utförlig tabell med statistisk information som genereras av statsmodels.,

denna information kan ge dig ytterligare insikter om den modell som används (t.ex. modellens passform, standardfel, etc):

Observera att koefficienterna som fångas i denna tabell (markeras i rött) matchar de koefficienter som genereras av sklearn.

det är ett gott tecken! vi fick konsekventa resultat genom att tillämpa både sklearn och statsmodels.

därefter ser du hur du skapar ett GUI i Python för att samla in inmatning från användare och sedan visa prediktionsresultaten.,

GUI används för flera linjär Regression i Python

det är där det roliga börjar!

varför inte skapa ett grafiskt användargränssnitt (GUI) som gör det möjligt för användare att mata in de oberoende variablerna för att få det förutsagda resultatet?

det kan vara så att några av användarna kanske inte vet mycket om att mata in data i Python-koden själv, så det är vettigt att skapa dem ett enkelt gränssnitt där de kan hantera data på ett förenklat sätt.,

Du kan även skapa en batch-fil för att starta Python-programmet, och så behöver användarna bara dubbelklicka på batchfilen för att starta GUI.

här är den fullständiga Python-koden för din ultimata Regressionsgui:

När du kör koden ser du den här GUI, som inkluderar utdata som genereras av sklearn och scatter-diagrammen:

minns att tidigare Vi gjorde en förutsägelse genom att använda följande värden:

  • ränta = 2,75
  • arbetslöshet = 5.,3

skriv dessa värden i inmatningsrutorna och klicka sedan på”Predict Stock Index Price” – knappen:

du ser nu det förutsagda resultatet av 1422.86, som matchar det värde du såg tidigare.

Du kanske också vill kontrollera följande handledning för att lära dig mer om att bädda in diagram på en Tkinter GUI.

slutsats

linjär regression används ofta i maskininlärning. Du har sett några exempel på hur du utför flera linjära regression i Python med både sklearn och statsmodels.,

innan du använder linjära regressionsmodeller, se till att kontrollera att det finns ett linjärt förhållande mellan den beroende variabeln (dvs. vad du försöker förutsäga) och den oberoende variabeln/s (dvs. indatavariabeln/s).