小编jfb*_*jfb的帖子

使用逻辑回归分析R,statmodel,sklearn的分类任务

我在R,python statmodels和sklearn中进行了逻辑回归的一些实验.虽然R和statmodels给出的结果是一致的,但sklearn返回的结果有些不一致.我想了解为什么这些结果不同.据我所知,它可能与木材下使用的优化算法不同.

具体来说,我使用标准Default数据集(在ISL书中使用).以下Python代码将数据读入数据帧Default.

import pandas as pd
 # data is available here
Default = pd.read_csv('https://d1pqsl2386xqi9.cloudfront.net/notebooks/Default.csv', index_col=0)
 #
Default['default']=Default['default'].map({'No':0, 'Yes':1})
Default['student']=Default['student'].map({'No':0, 'Yes':1})
 #
I=Default['default']==0
print("Number of 'default' values :", Default[~I]['balance'].count())
Run Code Online (Sandbox Code Playgroud)

"默认"值的数量:333.

总共有10000个例子,只有333个阳性

R中的逻辑回归

我使用以下内容

library("ISLR")
data(Default,package='ISLR')
 #write.csv(Default,"default.csv")
glm.out=glm('default~balance+income+student', family=binomial, data=Default)
s=summary(glm.out)
print(s)
#
glm.probs=predict(glm.out,type="response") 
glm.probs[1:5]
glm.pred=ifelse(glm.probs>0.5,"Yes","No")
 #attach(Default)
t=table(glm.pred,Default$default)
print(t)
score=mean(glm.pred==Default$default)
print(paste("score",score))
Run Code Online (Sandbox Code Playgroud)

结果如下

调用:glm(formula ="default~balance + income + student",family = binomial,data = Default)

Deviance Residuals:Min 1Q Median 3Q Max
-2.4691 -0.1418 -0.0557 -0.0203 3.7383

系数:

Estimate …
Run Code Online (Sandbox Code Playgroud)

python r scikit-learn logistic-regression

11
推荐指数
2
解决办法
2965
查看次数

标签 统计

logistic-regression ×1

python ×1

r ×1

scikit-learn ×1