热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

机器学习加利福尼亚房价预测

学习目标:提示:导入包例如:importpandasaspdimportnumpyasnpfromsklearn.datasets


学习目标:

提示:导入包

例如:

import pandas as pd
import numpy as np
from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import KFold, train_test_split
from sklearn.metrics import mean_squared_error as mse
from xgboost import XGBRegressor
from lightgbm import LGBMRegressor
from folium import Map
from folium.plugins import HeatMap
import matplotlib.pyplot as plt
%matplotlib inline
%config InlineBackend.figure_format = 'retina'
import seaborn as sns
sns.set_style('whitegrid')
!pip install -q flaml
import flaml
!pip install -q autogluon
from autogluon.tabular import TabularPredictor



数据:

提示:这里可以添加要学的内容

df_train = pd.read_csv('/kaggle/input/playground-series-s3e1/train.csv', index_col=0)
df_test = pd.read_csv('/kaggle/input/playground-series-s3e1/test.csv', index_col=0)
features, target = df_train.columns[:-1], df_train.columns[-1]

特征构造

original = fetch_california_housing()
assert original['feature_names'] == list(features)
assert original['target_names'][0] == target
df_original = pd.DataFrame(original['data'], columns=features)
df_original[target] = original['target']



EDA:

提示:Missing values

df_train.isna().sum()


查看分布

ncols = 3
nrows = np.ceil(len(df_train.columns)/ncols).astype(int)
cols = df_train.corrwith(df_train[target]).abs().sort_values(ascending=False)
fig, axs = plt.subplots(ncols=ncols, nrows=nrows, figsize=(10,nrows*2))
for idx, (c, corr) in enumerate(cols.items()):
row = idx // ncols
col = idx % ncols
sns.histplot(df_train, x=c, ax=axs[row, col])
axs[row,col].set_xlabel(f'{c}, corr = {corr:.3f}')
plt.tight_layout()

在这里插入图片描述
Some observations:

House value is capped
MedInc has the highest correlation with house value
Look at the data on a map
Credit: https://www.kaggle.com/code/jcaliz/ps-s03e01-a-complete-eda

heat_data = [[row['Latitude'],row['Longitude']] for _, row in df_train.iterrows()]
heat_map = Map(df_train[['Latitude', 'Longitude']].mean(axis=0), zoom_start=6)
HeatMap(heat_data, radius=10).add_to(heat_map)
heat_map

在这里插入图片描述


Compare with original data:

提示:这里统计学习计划的总量

例如:

df_train['source'] = 'train'
df_test['source'] = 'test'
df_original['source'] = 'original'
df_mixed = pd.concat([df_train, df_test, df_original])

fig, axs = plt.subplots(ncols=ncols, nrows=nrows, figsize=(15,nrows*2))
for idx, (c, corr) in enumerate(cols.items()):
row = idx // ncols
col = idx % ncols
sns.boxplot(data=df_mixed, x=c, y='source', ax=axs[row, col])
plt.tight_layout()

在这里插入图片描述


Baseline with gradient boosting

X_train, y_train = df_train[features].values, df_train[target].values
X_test = df_test[features].values

oof = np.zeros(len(df_train))
models = []
for fold, (idx_tr, idx_vl) in enumerate(cv.split(X_train)):
X_tr, y_tr = X_train[idx_tr], y_train[idx_tr]
X_vl, y_vl = X_train[idx_vl], y_train[idx_vl]
model = LGBMRegressor()
model.fit(X_tr, y_tr)
oof[idx_vl] = model.predict(X_vl)
models.append(model)

r = mse(y_vl, oof[idx_vl], squared=False)
print(f'Fold {fold} rmse: {r:.4}')
print(f'OOF rmse: {mse(y_train, oof, squared=False):.4}')

Fold 0 rmse: 0.5708
Fold 1 rmse: 0.5685
Fold 2 rmse: 0.5595
Fold 3 rmse: 0.5704
Fold 4 rmse: 0.5764
OOF rmse: 0.5692

Adding original data

df_combined = pd.concat([df_train, df_original]).drop(columns=['source'])
X_train, y_train = df_combined[features].values, df_combined[target].values
oof = np.zeros(len(X_train))
models = []
for fold, (idx_tr, idx_vl) in enumerate(cv.split(X_train)):
X_tr, y_tr = X_train[idx_tr], y_train[idx_tr]
X_vl, y_vl = X_train[idx_vl], y_train[idx_vl]
model = LGBMRegressor()
model.fit(X_tr, y_tr)
oof[idx_vl] = model.predict(X_vl)
models.append(model)

r = mse(y_vl, oof[idx_vl], squared=False)
print(f'Fold {fold} rmse: {r:.4}')
print(f'OOF rmse: {mse(y_train, oof, squared=False):.4}')

Fold 0 rmse: 0.53
Fold 1 rmse: 0.5367
Fold 2 rmse: 0.5385
Fold 3 rmse: 0.5372
Fold 4 rmse: 0.5411
OOF rmse: 0.5367

参考文章:https://www.kaggle.com/code/phongnguyen1/s03e01-original-data-boost-automl







推荐阅读
  • 本文介绍了如何使用PHP代码将表格导出为UTF8格式的Excel文件。首先,需要连接到数据库并获取表格的列名。然后,设置文件名和文件指针,并将内容写入文件。最后,设置响应头部,将文件作为附件下载。 ... [详细]
  • Python操作MySQL(pymysql模块)详解及示例代码
    本文介绍了使用Python操作MySQL数据库的方法,详细讲解了pymysql模块的安装和连接MySQL数据库的步骤,并提供了示例代码。内容涵盖了创建表、插入数据、查询数据等操作,帮助读者快速掌握Python操作MySQL的技巧。 ... [详细]
  • 前言:拿到一个案例,去分析:它该是做分类还是做回归,哪部分该做分类,哪部分该做回归,哪部分该做优化,它们的目标值分别是什么。再挑影响因素,哪些和分类有关的影响因素,哪些和回归有关的 ... [详细]
  • 基于词向量计算文本相似度1.测试数据:链接:https:pan.baidu.coms1fXJjcujAmAwTfsuTg2CbWA提取码:f4vx2.实验代码:imp ... [详细]
  • 湍流|低频_youcans 的 OpenCV 例程 200 篇106. 退化图像的逆滤波
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了youcans的OpenCV例程200篇106.退化图像的逆滤波相关的知识,希望对你有一定的参考价值。 ... [详细]
  • python3连接外部Mysql
    前提条件,已经安装过MySQL(比如说以前web开发安装过MySQL)1.安装PyMySQLpipinstallPyMySQL2.测试1i ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • 本文介绍了一个Python函数same_set,用于判断两个相等长度的数组是否包含相同的元素。函数会忽略元素的顺序和重复次数,如果两个数组包含相同的元素,则返回1,否则返回0。文章还提供了函数的具体实现代码和样例输入输出。 ... [详细]
  • 如何优化Webpack打包后的代码分割
    本文介绍了如何通过优化Webpack的代码分割来减小打包后的文件大小。主要包括拆分业务逻辑代码和引入第三方包的代码、配置Webpack插件、异步代码的处理、代码分割重命名、配置vendors和cacheGroups等方面的内容。通过合理配置和优化,可以有效减小打包后的文件大小,提高应用的加载速度。 ... [详细]
  • tcpdump 4.5.1 crash 深入分析
    tcpdump 4.5.1 crash 深入分析 ... [详细]
  • 在本教程中,我们将看到如何使用FLASK制作第一个用于机器学习模型的RESTAPI。我们将从创建机器学习模型开始。然后,我们将看到使用Flask创建AP ... [详细]
  • 一:跨域问题1、同源策略(浏览器的安全策略)    只允许当前页面朝当前域下发请求,如果向其他域发请求,请求可以正常发送,数据也可以拿回,但是被浏览器拦截了  2、c ... [详细]
  • mapreduce源码分析总结
    这篇文章总结的非常到位,故而转之一MapReduce概述MapReduce是一个用于大规模数据处理的分布式计算模型,它最初是由Google工程师设计并实现的ÿ ... [详细]
  • npminstall-Dbabelcorebabelpreset-envbabelplugin-transform-runtimebabelpolyfillbabel-loader ... [详细]
author-avatar
可爱鼠标1985
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有