当前位置: 首页 > wzjs >正文

免费域名的网站seo搜索引擎实战详解

免费域名的网站,seo搜索引擎实战详解,wordpress隐藏路径,创造软件的软件下载本项目代码在个人github链接:https://github.com/KLWU07/Machine-learning-Project-practice/tree/main 处理流程 1.导入波士顿房价数据集并进行预处理。2.使用 GradientBoostingRegressor 模型进行回归分析。3.通过交叉验证评估模型的性能,计算 MAE、…

本项目代码在个人github链接:https://github.com/KLWU07/Machine-learning-Project-practice/tree/main

处理流程

  • 1.导入波士顿房价数据集并进行预处理。
  • 2.使用 GradientBoostingRegressor 模型进行回归分析。
  • 3.通过交叉验证评估模型的性能,计算 MAE、MSE、MBE、RMSE 和 R^2 分数。
  • 4.使用 matplotlib 绘制训练集和测试集的真实值与预测值的折线图和散点图,直观展示模型的预测效果。

九种回归算法

英文名称 (代码调用)中文名称说明
LinearRegression线性回归最简单的回归算法,假设目标变量与特征之间存在线性关系。适用于线性可分的数据集。
ElasticNet弹性网络回归结合了 L1 和 L2 正则化,是 Lasso 和 Ridge 的结合。适用于特征数量较多且存在多重共线性的数据集。
LassoLasso 回归使用 L1 正则化,可以进行特征选择,使一些特征的系数为零。适用于特征数量较多且需要稀疏解的数据集。
Ridge岭回归使用 L2 正则化,可以处理多重共线性问题。适用于特征数量较多且存在多重共线性的数据集。
DecisionTreeRegressor决策树回归器基于决策树的回归算法,可以处理非线性关系。适用于特征数量较少且数据分布不均匀的数据集。
KNeighborsRegressorK 近邻回归器基于 K 近邻的回归算法,预测目标值是其最近邻点的平均值。适用于数据点分布较为均匀的数据集。
SVR支持向量回归器基于支持向量机的回归算法,可以处理非线性关系。适用于特征数量较多且数据分布复杂的数据集。
GradientBoostingRegressor梯度提升回归器基于梯度提升的回归算法,通过组合多个弱学习器来提高预测性能。适用于特征数量较多且数据分布复杂的数据集。
ExtraTreesRegressor额外树回归器基于随机森林的回归算法,通过组合多个决策树来提高预测性能。适用于特征数量较多且数据分布复杂的数据集。

一、数据集介绍

  波士顿房价数据集是机器学习领域中经典的回归分析数据集,用于房价预测,监督学习中的回归问题,目标是通过多个特征预测波士顿地区的房屋中位数价格(MEDV)。共 506 条样本(观测值),每条样本对应一个波士顿城镇的统计数据。典型的单变量回归任务,目标是通过 13 个特征预测MEDV。数据集字段(特征)说明如下

序号特征名称名称中文说明
1CRIM人均犯罪率城镇每千人犯罪次数
2ZN住宅用地比例25,000 平方英尺以上住宅用地比例(规划限制,非住宅用地比例)
3INDUS非零售商业用地比例城镇非零售商业用地比例(商业活动密度)
4CHAS查尔斯河虚拟变量1 = 邻近河流,0 = 不邻近
5NOX氮氧化物浓度ppm,空气质量指标
6RM平均房间数每套住宅的平均房间数
7AGE房龄较老房屋占比1940 年前建成的自住房屋比例
8DIS就业中心加权距离到波士顿 5 个就业中心的加权距离(通勤便利性)
9RAD辐射状公路可达性指数交通便利程度,指数越高表示越容易到达高速公路
10TAX房产税税率每 1 万美元房产的年税额
11PRTATIO师生比城镇师生比(教育资源指标)
12B黑人比例计算值公式:B = 1000(Bk - 0.63)^2,其中Bk为黑人比例
13LSTAT低收入人群比例%,社会经济地位指标
14MEDV房屋中位数价格单位:千美元,目标变量

1.各特征分布情况

在这里插入图片描述

二、算法评估

  尝试了数据标准化没有很大提升。

1.九种回归算法RMSE 和 R^2 比较

  图中的蓝色柱子表示 RMSE,红色柱子表示 R^2 分数。通过这个图,可以直观地比较不同模型的性能。
在这里插入图片描述

2.训练集和测试集预测值和真实值可视化

  梯度提升回归树模型GradientBoostingRegressor和随机搜索最佳参数,均方根误差RMSE为2.725 (0.540),决定系数R2为 0.903 (0.035)。
在这里插入图片描述
在这里插入图片描述

3.训练集和测试集预测值和真实值散点图

在这里插入图片描述

Best parameters: {'learning_rate': 0.12829684257109286, 'max_depth': 5, 'max_features': 'log2', 'min_samples_leaf': 3, 'min_samples_split': 5, 'n_estimators': 122, 'random_state': 42}
Best cross-validation score: -7.715896901281501
MAE: -1.943 (0.285)
MSE: -7.716 (3.060)
MBE: 0.008 (0.223)
RMSE: 2.725 (0.540)
R2: 0.903 (0.035)

4.特征重要性

在这里插入图片描述

5.加入主成分分析PCA降维

  评估结果不好,不适合使用降维方法。(pca = PCA
  n_components=3 # 降维到 3 个主成分
  X_pca = pca.fit_transform(X))

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Model: GradientBoostingRegressor
MAE: -4.632 (0.564)
MSE: -48.134 (15.559)
MBE: -0.023 (0.886)
RMSE: 6.845 (1.202)
R2: 0.413 (0.152)

6.网格搜索(Grid Search)最佳参数组合

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Best parameters: {'learning_rate': 0.1, 'max_depth': 6, 'max_features': 'sqrt', 'n_estimators': 160, 'random_state': 7}
Best cross-validation score: -8.265665640433037
MAE: -1.951 (0.287)
MSE: -8.266 (3.460)
MBE: -0.011 (0.315)
RMSE: 2.813 (0.595)
R2: 0.897 (0.039)

7.随机搜索(Random Search)

在前参数范围基础上寻找更好一点参数。结果在最前面1

三、完整代码

from pandas import read_csv
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LinearRegression, ElasticNet, Lasso, Ridge
from sklearn.tree import DecisionTreeRegressor
from sklearn.neighbors import KNeighborsRegressor
from sklearn.svm import SVR
from sklearn.ensemble import GradientBoostingRegressor, ExtraTreesRegressor
from sklearn.metrics import mean_squared_error
import numpy as np
import matplotlib.pyplot as plt# 导入数据
filename = 'housing.csv'
names = ['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS','RAD', 'TAX', 'PRTATIO', 'B', 'LSTAT', 'MEDV']
data = read_csv(filename, names=names, delim_whitespace=True)# 将数据分为输入数据和输出结果
array = data.values
X = array[:, 0:13]  # 输入特征
Y = array[:, 13]    # 输出目标变量# 设置交叉验证参数
n_splits = 10
seed = 7
kfold = KFold(n_splits=n_splits, shuffle=True, random_state=seed)# 定义多个回归模型
models = {'LinearRegression': LinearRegression(),'ElasticNet': ElasticNet(),'Lasso': Lasso(),'Ridge': Ridge(),'DecisionTreeRegressor': DecisionTreeRegressor(),'KNeighborsRegressor': KNeighborsRegressor(),'SVR': SVR(),'GradientBoostingRegressor': GradientBoostingRegressor(),'ExtraTreesRegressor': ExtraTreesRegressor()
}# 定义评分标准
scoring = ['neg_mean_absolute_error', 'neg_mean_squared_error', 'r2']# 定义自定义评分函数
def mean_bias_error(y_true, y_pred):return np.mean(y_pred - y_true)def root_mean_squared_error(y_true, y_pred):return np.sqrt(mean_squared_error(y_true, y_pred))# 评估每个模型
model_names = []
rmse_scores = []
r2_scores = []for name, model in models.items():print(f"Model: {name}")# 计算MAEresult_mae = cross_val_score(model, X, Y, cv=kfold, scoring=scoring[0])print('MAE: %.3f (%.3f)' % (result_mae.mean(), result_mae.std()))# 计算MSEresult_mse = cross_val_score(model, X, Y, cv=kfold, scoring=scoring[1])print('MSE: %.3f (%.3f)' % (result_mse.mean(), result_mse.std()))# 计算R^2result_r2 = cross_val_score(model, X, Y, cv=kfold, scoring=scoring[2])print('R2: %.3f (%.3f)' % (result_r2.mean(), result_r2.std()))# 计算MBE和RMSEmbe_scores = []rmse_scores_temp = []for train_index, test_index in kfold.split(X):X_train, X_test = X[train_index], X[test_index]Y_train, Y_test = Y[train_index], Y[test_index]model.fit(X_train, Y_train)Y_pred = model.predict(X_test)mbe_scores.append(mean_bias_error(Y_test, Y_pred))rmse_scores_temp.append(root_mean_squared_error(Y_test, Y_pred))print('MBE: %.3f (%.3f)' % (np.mean(mbe_scores), np.std(mbe_scores)))print('RMSE: %.3f (%.3f)' % (np.mean(rmse_scores_temp), np.std(rmse_scores_temp)))print("-" * 50)# 保存模型名称、RMSE 和 R^2 分数model_names.append(name)rmse_scores.append(np.mean(rmse_scores_temp))r2_scores.append(np.mean(result_r2))# 绘制柱状图
fig, ax1 = plt.subplots(figsize=(12, 8))# 设置柱状图的位置
bar_width = 0.35
index = np.arange(len(model_names))# 绘制 RMSE 柱状图
ax1.bar(index, rmse_scores, bar_width, label='RMSE', color='tab:blue')
ax1.set_xlabel('Model')
ax1.set_ylabel('RMSE', color='tab:blue')
ax1.tick_params(axis='y', labelcolor='tab:blue')# 创建第二个坐标轴
ax2 = ax1.twinx()# 绘制 R^2 柱状图
ax2.bar(index + bar_width, r2_scores, bar_width, label='R^2', color='tab:red')
ax2.set_ylabel('R^2', color='tab:red')
ax2.tick_params(axis='y', labelcolor='tab:red')# 添加标题和标签
ax1.set_title('Comparison of RMSE and R^2 for Different Models')
ax1.set_xticks(index + bar_width / 2)
ax1.set_xticklabels(model_names, rotation=45, ha='right')
ax1.legend(loc='upper left')
ax2.legend(loc='upper right')plt.tight_layout()
plt.show()
http://www.dtcms.com/wzjs/189157.html

相关文章:

  • 第八章 电子商务网站建设试题ui培训
  • 工程项目网站seo刷网站
  • 合肥网站建设 合肥网络推广福州seo推广服务
  • 报价网站制作5118网站如何使用免费版
  • wordpress js_composer安卓手机性能优化软件
  • 中山快速做网站公司百度一下百度搜索百度一下
  • 宽城区建设局网站免费外链工具
  • 小程序制作公司排名网站优化方案范文
  • 电子商务网站建设怎么做最有效的网络推广方式
  • 汽车网站建设论坛郑州做网站推广
  • 客户管理系统网站谷歌优化怎么做
  • 集团网站建设运营公司微商如何引流与推广
  • 装修行业在什么网站上做推广好周口网络推广哪家好
  • wordpress商城案例如何利用seo赚钱
  • 石家庄视频网站建设公司seo顾问是什么职业
  • 网站维护工作内容有什么如何策划一个营销方案
  • 罗湖附近公司做网站建设哪家好网络推广哪家做得比较好
  • 做女装网站应怎么定位网络营销实践总结报告
  • 贵港做网站建设价格费用百度软文推广怎么做
  • 网站备案号 如何添加最火的网络推广平台
  • 哪里做网站好佛山网站优化服务
  • 营销型公司网站百度学术官网论文查重免费
  • 婚纱设计网站济南做seo的公司排名
  • 网站建设公司哪家好速找盛世传媒郑州网络推广排名
  • app制作教程能独立制作网页优化包括什么
  • 广州网站建设设计公司信息郑州专业seo哪家好
  • 无锡高端网站建设公司杭州百度seo代理
  • 桥西区建设局网站香水推广软文
  • 在什么网站做公务员题目上海优化seo排名
  • 有必要 在线 网页 代理网络优化的三个方法