簡體   English   中英

如何使用scikit-learn對python中的數據集進行多元線性回歸?

[英]How to preform multiple linear regression on a dataset in python with scikit-learn?

我的python代碼最初輸出這些結果,一份人口普查區域(基本上是一塊土地)人口的字典列表以及各種土地覆蓋類型。 在這里是:

[{'Total Population:': 4585, 'Total Water Ice Cover': 2.848142234497044, 'Total Developed': 17.205368316575324, 'Total Barren Land': 0.22439908514219134, 'Total Forest': 34.40642126612868},

 {'Total Population:': 4751, 'Total Water Ice Cover': 1.047783534830167, 'Total Developed': 37.27115716753022, 'Total Barren Land': 0.11514104778353484, 'Total Forest': 19.11341393206678},

 {'Total Population:': 3214, 'Total Water Ice Cover': 0.09166603009701321, 'Total Developed': 23.50469788404247, 'Total Barren Land': 0.2597204186082041, 'Total Forest': 20.418608204109695},

 {'Total Population:': 5005, 'Total Water Ice Cover': 0.0, 'Total Developed': 66.37545713124746, 'Total Barren Land': 0.0, 'Total Forest': 10.68671271840715},

...
]

然后使用該代碼將其放入pandas對象:

import pandas as pd
df = pd.DataFrame(output)
print(df)
#   Total Barren Land  Total Developed  Total Forest  Total Population:  Total Water Ice Cover
#0           0.224399        17.205368     34.406421               4585               2.848142 
#1           0.115141        37.271157     19.113414               4751               1.047784 
#2           0.259720        23.504698     20.418608               3214               0.091666   
#3           0.000000        66.375457     10.686713               5005               1.047784 

然后獲得皮爾遜“ r”相關性:

pd.set_option("precision",4)  # only show 4 digits

# remove 'Total ' from column names to make printing smaller
df.rename(columns=lambda x: x.replace("Total ", ""), inplace=True)  

corr = df.corr(method="pearson")
print(corr)
#                 Barren Land  Developed  Forest  Population:  Water Ice Cover
#Barren Land           1.0000    -0.9579  0.7361      -0.7772           0.4001
#Developed            -0.9579     1.0000 -0.8693       0.5736          -0.6194
#Forest                0.7361    -0.8693  1.0000      -0.1575           0.9114
#Population:          -0.7772     0.5736 -0.1575       1.0000           0.2612
#Water Ice Cover       0.4001    -0.6194  0.9114       0.2612           1.0000

現在,我有了人口與各種土地覆蓋類型之間的所有皮爾森“ r”相關值。

我現在想做的是計算多元線性回歸。 我正在嘗試在以下表面覆蓋的種群密度和面積百分比之間執行多元線性回歸,並計算回歸的R2:發達的,種植的/栽培的等級以及其他一些等級。 也可以通過熊貓嗎?

謝謝

您可以使用Scikit-learn或Statsmodels進行多元回歸。

您可以在此處使用scikit_learn看到多元回歸的一個示例: Python中的多元線性回歸

至於Statsmodels,您可以執行以下操作:

import statsmodels.api as sm    

X = df[[“variable_1”, “variable_2”]]
y = df[“target”]

model = sm.OLS(y, X).fit()
predictions = model.predict(X)
model.summary()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM