【Python机器学习】决策树、K近邻、神经网络等模型对Kaggle房价预测实战(附源码和数据集)

简介: 【Python机器学习】决策树、K近邻、神经网络等模型对Kaggle房价预测实战(附源码和数据集)

需要源码和数据集请点赞关注收藏后评论区留言私信~~~

超参数调优

超参数调优需要依靠试验的方法,以及人的经验。对算法本身的理解越深入,对实现算法的过程了解越详细,积累了越多的调优经验,就越能够快速准确地找到最合适的超参数

试验的方法,就是设置了一系列超参数之后,用训练集来训练并用验证集来检验,多次重复以上过程,取效果最好的超参数。训练数据的划分可以采用保持法,也可以采用K-折交叉验证法。超参数调优的试验方法主要有两种:网格搜索和随机搜索。

网格搜索

网格搜索法将各超参数形成的空间划分为若干小空间,在每一个小空间上取一组值作为代表进行试验。取效果最好的那组值作为最终的超参数值。

这种暴力的方法,只适合于小样本量、少参数的情况,否则效率很低。可以作适当地改进,1)在影响大的参数上作更细的划分,而在影响小的参数上作粗的划分,2)先将网格粗切分,然后再对最好的网格进行细切分,3)还有一种改进效率的贪心搜索方法,先在影响最大的参数上进行一维搜索,找到最优参数,然后固定它,再在余下参数中影响最大参数上进行一维搜索,如此下去,直到搜索完所有参数。

随机搜索

随机搜索的思想和网格搜索比较相似,只是不固定分隔子空间,而是随机分隔。它将每个特征的取值都看成是一个分布,然后依概率从中取值。每轮试验中,每个特征取一个值,进行模型训练。随机搜索一般会比网格搜索要快一些。但是无法保证得到最优超参数值。

在sklearn.model_selection.RandomizedSearchCV中实现了随机搜索。

房价回归预测实战

Kaggle提供了一个房价预测的题目,在官网及其他网站出现了大量对该题目的分析和研究,很适合初学者参考学习。

该题目是依据房屋的属性信息,包括房屋的卧室数量、卫生间数量、房屋的大小、房屋地下室的大小、房屋的外观、房屋的评分、房屋的修建时间、房屋的翻修时间、房屋的位置信息等,对房屋的价格进行预测。

1:初步数据分析

从Kaggle官网下载数据后,用Pandas进行初步分析,发现数据完整,没有缺失和重复的现象

2:划分训练集和验证集,并标准化

3:初步建立模型

选择K近邻回归、决策树回归、随机森林回归和梯度提升树回归等多个模型进行初步实验

4:超参数调优

对用时最少、得分最高的梯度提升树回归模型进行超参数调优。具体采用网格搜索方法。

5:特征选择

用相关系数来观察不同特征之间以及它们和标签值之间的相关性

去掉与标签相关系数值较小的特征,重新训练模型,比较结果,发现得分略降低,但用时大幅下降

用散点图观察特征与标签的相关性

从平均绝对误差来看,第一应该去掉的特征bathrooms 从均方误差来看,第一应该去掉的特征是sqft_basement

神经网络模型

最后 尝试使用全连接层神经网络来对该回归问题建模

训练过程和训练误差结果如下

最后 部分代码如下

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
sc.fit(X_train)
X_train= sc.transform(X_train)
X_test = sc.transform(X_test)
from sklearn.neighbors import KNeighborsRegressor
model = KNeighborsRegressor(n_neighbors=10)
time_start=time.time()
model.fit(X_train, y_train)
print('K近邻回归模型训练用时:', time.time()-time_start)
y_pred=model.predict(X_test)
print ('K近邻回归模型在验证集上的平均绝对误差和均方误差分别为:', 
       mean_absolute_error(y_test,y_pred), mean_squared_error(y_test,y_pred))
from sklearn.tree import DecisionTreeRegressor
model = DecisionTreeRegressor()
time_start=time.time()
model.fit(X_train, y_train)
print('决策树回归模型训练用时:', time.time()-time_start)
y_pred=model.predict(X_test)
print ('决策树回归模型在验证集上的平均绝对误差和均方误差分别为:', 
       mean_absolute_error(y_test,y_pred), mean_squared_error(y_test,y_pred))
from sklearn.ensemble import RandomForestRegressor 
model = RandomForestRegressor(n_estimators=500)
time_start=time.time()
model.fit(X_train, y_train)
print('随机森林回归模型训练用时:', time.time()-time_start)
y_pred=model.predict(X_test)
print ('随机森林回归模型在验证集上的平均绝对误差和均方误差分别为:', 
       mean_absolute_error(y_test,y_pred), mean_squared_error(y_test,y_pred))
plt.figure(figsize=(14,12))
sns.heatmap(raw_data.corr(), annot=True, cmap="YlGnBu")
plt.title('Feature Correlation')
plt.tight_layout()
plt.show()

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
12天前
|
机器学习/深度学习 TensorFlow API
机器学习实战:TensorFlow在图像识别中的应用探索
【10月更文挑战第28天】随着深度学习技术的发展,图像识别取得了显著进步。TensorFlow作为Google开源的机器学习框架,凭借其强大的功能和灵活的API,在图像识别任务中广泛应用。本文通过实战案例,探讨TensorFlow在图像识别中的优势与挑战,展示如何使用TensorFlow构建和训练卷积神经网络(CNN),并评估模型的性能。尽管面临学习曲线和资源消耗等挑战,TensorFlow仍展现出广阔的应用前景。
38 5
|
30天前
|
机器学习/深度学习 人工智能 算法
揭开深度学习与传统机器学习的神秘面纱:从理论差异到实战代码详解两者间的选择与应用策略全面解析
【10月更文挑战第10天】本文探讨了深度学习与传统机器学习的区别,通过图像识别和语音处理等领域的应用案例,展示了深度学习在自动特征学习和处理大规模数据方面的优势。文中还提供了一个Python代码示例,使用TensorFlow构建多层感知器(MLP)并与Scikit-learn中的逻辑回归模型进行对比,进一步说明了两者的不同特点。
63 2
|
30天前
|
机器学习/深度学习 数据挖掘 Serverless
手把手教你全面评估机器学习模型性能:从选择正确评价指标到使用Python与Scikit-learn进行实战演练的详细指南
【10月更文挑战第10天】评估机器学习模型性能是开发流程的关键,涉及准确性、可解释性、运行速度等多方面考量。不同任务(如分类、回归)采用不同评价指标,如准确率、F1分数、MSE等。示例代码展示了使用Scikit-learn库评估逻辑回归模型的过程,包括数据准备、模型训练、性能评估及交叉验证。
56 1
|
24天前
|
数据采集 机器学习/深度学习 TensorFlow
声纹识别实战:从数据采集到模型训练
【10月更文挑战第16天】声纹识别技术通过分析个人的语音特征来验证其身份,具有无接触、便捷的特点。本文将带你从零开始,一步步完成声纹识别系统的构建,包括数据采集、音频预处理、特征提取、模型训练及评估等关键步骤。我们将使用Python语言和相关的科学计算库来进行实践。
92 0
|
2天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
10 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
阿里云人工智能平台 PAI 团队发表的图像编辑算法论文在 MM2024 上正式亮相发表。ACM MM(ACM国际多媒体会议)是国际多媒体领域的顶级会议,旨在为研究人员、工程师和行业专家提供一个交流平台,以展示在多媒体领域的最新研究成果、技术进展和应用案例。其主题涵盖了图像处理、视频分析、音频处理、社交媒体和多媒体系统等广泛领域。此次入选标志着阿里云人工智能平台 PAI 在图像编辑算法方面的研究获得了学术界的充分认可。
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
|
23天前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
|
1月前
|
机器学习/深度学习 人工智能 算法
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
玉米病害识别系统,本系统使用Python作为主要开发语言,通过收集了8种常见的玉米叶部病害图片数据集('矮花叶病', '健康', '灰斑病一般', '灰斑病严重', '锈病一般', '锈病严重', '叶斑病一般', '叶斑病严重'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。再使用Django搭建Web网页操作平台,实现用户上传一张玉米病害图片识别其名称。
52 0
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
|
1月前
|
机器学习/深度学习 算法 决策智能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
|
1月前
|
机器学习/深度学习 算法 Python
探索机器学习中的决策树算法:从理论到实践
【10月更文挑战第5天】本文旨在通过浅显易懂的语言,带领读者了解并实现一个基础的决策树模型。我们将从决策树的基本概念出发,逐步深入其构建过程,包括特征选择、树的生成与剪枝等关键技术点,并以一个简单的例子演示如何用Python代码实现一个决策树分类器。文章不仅注重理论阐述,更侧重于实际操作,以期帮助初学者快速入门并在真实数据上应用这一算法。