
R语言做kaggle中California Housing Prices数据集
发布日期:2021-05-07 09:30:35
浏览次数:15
分类:精选文章
本文共 2192 字,大约阅读时间需要 7 分钟。
数据集来源
数据集是kaggle里面的House Prices 加载所需要的包library(tidyverse)library(reshape2)
读取数据
housing = read.csv('housing.csv')
简单看一下数据
head(housing)
summary(housing)
- 可以看出total_bedrooms中有缺失值需要处理
- 再有就是ocean_proximity需要处理成哑变量
- total_bedrooms 和 total_rooms需要处理为mean_number_bedrooms and mean_number_rooms
看一下列名字
colnames(housing)
画图看一下各个变量的分布
ggplot(data = melt(housing), mapping = aes(x = value)) + geom_histogram(bins = 30) + facet_wrap(~variable, scales = 'free_x')
数据预处理
中位数插值
housing$total_bedrooms[is.na(housing$total_bedrooms)] = median(housing$total_bedrooms , na.rm = TRUE)
将total_bedrooms 和 total_rooms处理为mean_number_bedrooms and mean_number_rooms
housing$mean_bedrooms = housing$total_bedrooms/housing$householdshousing$mean_rooms = housing$total_rooms/housing$householdsdrops = c('total_bedrooms', 'total_rooms')housing = housing[ , !(names(housing) %in% drops)]
head(housing)
下面是将ocean_proximity处理成哑变量
housing1 <- housing[c(-7,-8)]housing1 <- scale(housing1)
library(fastDummies)housing2 <- dummy_cols(housing,remove_first_dummy = F)
housing3 <- data.frame(housing2[11:15],housing1,housing$median_house_value)
library(randomForest)library(caret)
将数据集的80%划分为训练集,20%划分为测试集
set.seed(1234)#将数据集的80%划分为训练集,20%划分为测试集trainIndex = createDataPartition(housing3$housing.median_house_value, p=0.8, list = FALSE, times = 1)#createDatapartition会自动从y的各个level随机取出等比例的数据来,组成训练集#训练集dataTrain = housing3[trainIndex,]#测试集dataTest = housing3[-trainIndex,]
随机森林
library(randomForest)
names(dataTrain)
set.seed(1)train_y = dataTrain[,'housing.median_house_value']train_x = dataTrain[, names(dataTrain) !='housing.median_house_value']head(train_y)head(train_x)
rf_model = randomForest(train_x, y = train_y , ntree = 500, importance = TRUE)
names(rf_model)
变量重要性
rf_model$importance
包外误差
oob_prediction = predict(rf_model)
train_mse = mean(as.numeric((oob_prediction - train_y)^2))oob_rmse = sqrt(train_mse)oob_rmse
看看在模型测试集上的效果
test_y = dataTest[,'housing.median_house_value']test_x = dataTest[, names(dataTest) !='housing.median_house_value']y_pred = predict(rf_model , test_x)test_mse = mean(((y_pred - test_y)^2))test_rmse = sqrt(test_mse)test_rmse
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月15日 20时54分39秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Java设置PPT幻灯片背景——纯色、渐变、图片背景
2019-03-06
Java 设置PDF文档浏览偏好
2019-03-06
Java 添加、替换、删除PDF中的图片
2019-03-06
C#中构造函数的作用
2019-03-06
Go 数组&切片
2019-03-06
Go 文件操作
2019-03-06
drf Serializer基本使用
2019-03-06
老Python总结的字典相关知识
2019-03-06
深入理解 ZK集群的Leader选举
2019-03-06
深入理解分布式锁
2019-03-06
计算机的运算方法
2019-03-06
谈谈MySQL的基数统计
2019-03-06
大型面试现场:一条update sql执行都经历什么?
2019-03-06
自导自演的面试现场之--你竟然不了解MySQL的组提交?
2019-03-06
ajax 处理请求回来的数据
2019-03-06
简单单页面路由跳转demo
2019-03-06
vue 不常见操作
2019-03-06
jQuery的事件绑定与触发 - 学习笔记
2019-03-06
解决页面加载闪白问题-背景图片加载优化
2019-03-06
Python处理接口测试的签名
2019-03-06