逻辑斯蒂回归模型

前言

系统性地梳理一下逻辑斯蒂回归代码实现,顺便存档。关于原理部分的笔记在平板上,在最后一部分可以用到。
目录:
1.R语言实现(glm函数)
2.Python实现(库)
3.手撕Python


1.R语言实现

直接上代码,内容参考《统计学习导论》

#这里使用ISLR库的smarket(股票市场)数据的数值和图像先进行描述性统计分析
#该数据集包括从2001年年初至2005年年末1250天里S&P500股票指数的投资回报率
#数据中记录了过去5个交易日中的每个交易日的投资回报率,从Lag1到lag5
#同时也记录了Volume(前一日股票成交量,单位为十亿),Today(当日的投资回报率)以及Direction(这些数据在市场的走势方向,或涨或跌)
library(ISLR)
head(Smarket)
summary(Smarket)
class(Smarket)
attach(Smarket)
Smarket$Direction=as.numeric(Direction) #把Smarket中的Direction转换为numeric,否则不能计算相关系数
cor(Smarket) #计算data.frame里的相关系数
Volumet=ts(Volume)
plot(Volumet)

#开始逻辑斯蒂回归,使用函数glm,该函数除了计算广义线形模型时还可以计算逻辑斯蒂
#使用该功能时必须输入参数family=binomial,可以输入参数data=Smarket但是没必要
glm.fit=glm(Direction~Lag1+Lag2+Lag3+Lag4+Lag5+Volume, family = binomial)

#查看模型结果
summary(glm.fit) #总结果
coef(glm.fit) #查看各系数
summary(glm.fit)$coef #查看各系数的p值

#预测,type参数明确告诉R输出预测概率,否则输出的是对分数,可以添加预测集
glm.probs=predict(glm.fit, type = 'response')
#将预测结果转化为0,1变量,正式输出预测结果
glm.pred=rep("Down",1250)
glm.pred[glm.probs > 0.5]="Up"

#评估预测效果,table函数可以用来产生混淆矩阵
table(glm.pred,Direction)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值