用R中ISLR包的Hitters数据集,以Salary为因变量,建立Logistic模型
时间: 2023-06-13 13:08:08 浏览: 256
Hitters数据集中的Salary是连续型变量,不适合用于建立逻辑回归模型,逻辑回归模型适合建立二元分类问题。如果我们想要建立一个预测球员是否会获得高薪的二元分类模型,可以将Salary变量转化为二元变量(例如,将Salary大于平均值的球员标记为1,小于平均值的球员标记为0)。
以下是将Salary变量转化为二元变量并建立逻辑回归模型的R代码:
```R
library(ISLR)
data(Hitters)
mean_salary <- mean(Hitters$Salary)
Hitters$HighSalary <- ifelse(Hitters$Salary > mean_salary, 1, 0)
logit_model <- glm(HighSalary ~ ., data = Hitters, family = "binomial")
summary(logit_model)
```
这段代码中,我们首先加载ISLR包和Hitters数据集,然后计算Salary的平均值。接着,我们使用ifelse函数将Salary变量转化为二元变量HighSalary,其中Salary大于平均值的球员标记为1,小于平均值的球员标记为0。最后,我们使用glm函数建立逻辑回归模型,HighSalary作为因变量,所有其他变量作为自变量,family参数指定为binomial。使用summary函数查看模型摘要。
相关问题
考虑 ISLR 包的 Hitters 数据,此数据集有322个运 动员的20个变量的数据,其中的变量 Salary(工资)是 我们关心的。请利用决策树与随机森林来对该变量进行 回归。
好的,我们来看看如何用决策树和随机森林对 Hitters 数据集中的 Salary 进行回归。
首先,我们需要加载 ISLR 包并读取数据集:
```R
library(ISLR)
data(Hitters)
```
接下来,我们需要做一些数据预处理工作,包括对缺失值进行处理和将一些分类变量进行独热编码。这里我们使用 dplyr 和 tidyr 包来完成:
```R
library(dplyr)
library(tidyr)
# 处理缺失值
Hitters <- Hitters %>%
mutate_if(is.character, as.factor) %>%
mutate_if(is.factor, function(x) as.numeric(as.character(x))) %>%
na.omit()
# 独热编码
Hitters <- Hitters %>%
select(-c("League", "Division", "NewLeague")) %>%
mutate(AtBat_450 = ifelse(AtBat > 450, 1, 0)) %>%
mutate(Hits_130 = ifelse(Hits > 130, 1, 0)) %>%
mutate(HmRun_20 = ifelse(HmRun > 20, 1, 0)) %>%
mutate(RBI_75 = ifelse(RBI > 75, 1, 0)) %>%
mutate(Walks_60 = ifelse(Walks > 60, 1, 0)) %>%
select(-c("AtBat", "Hits", "HmRun", "RBI", "Walks"))
```
现在,我们可以将数据集拆分为训练集和测试集:
```R
set.seed(123)
train <- sample(nrow(Hitters), nrow(Hitters) * 0.8)
train_data <- Hitters[train, ]
test_data <- Hitters[-train, ]
```
接下来,我们可以使用 rpart 包来构建决策树模型:
```R
library(rpart)
# 构建决策树模型
tree_model <- rpart(Salary ~ ., data = train_data, method = "anova")
# 预测测试集
test_pred <- predict(tree_model, test_data)
# 计算均方误差
mse <- mean((test_data$Salary - test_pred)^2)
```
我们可以使用 rpart.plot 包来可视化决策树模型:
```R
library(rpart.plot)
rpart.plot(tree_model)
```
接下来,我们可以使用 randomForest 包来构建随机森林模型:
```R
library(randomForest)
# 构建随机森林模型
rf_model <- randomForest(Salary ~ ., data = train_data, ntree = 500, mtry = 4)
# 预测测试集
test_pred <- predict(rf_model, test_data)
# 计算均方误差
mse <- mean((test_data$Salary - test_pred)^2)
```
随机森林模型的预测精度通常比决策树模型更高,但是模型训练时间也更长。
r语言hitters数据集
好的,您想了解关于R语言中的Hitters数据集的一些信息吗?Hitters数据集是一个棒球运动员的统计数据集。该数据集包含了每个球员在1986年的赛季中的各种统计数据,如安打数、全垒打数、打点数等。此外,该数据集还包含了球员的一些个人信息,如年龄、身高、体重等。该数据集通常被用来做回归分析或其他相关的数据分析任务。在R语言中,该数据集可以通过`ISLR`包中的`Hitters`数据集进行加载。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)