在大数据时代,精准的数据分类与预测对各领域的发展至关重要。
超平面作为高维空间中的关键概念,可将线性空间一分为二,为数据分类奠定了理论基石。
视频
R语言支持向量分类器SVM原理及预测应用
基于此发展而来的最大边缘分类器,通过最大化边际距离,精准划分数据类别,而支持向量分类器则进一步优化,提升了分类的稳健性。
与此同时,在房地产市场中,房价预测一直是研究热点。R 语言凭借其强大的数据分析能力,成为房价预测的有力工具。
本文深入剖析超平面、最大边缘分类器与支持向量分类器的原理,详细阐述其在 Khan 数据集上的应用。并创新性地将这些分类技术与 R 语言相结合,运用回归、LASSO、决策树等多种模型预测房价,旨在为数据分类与房价预测领域提供全新的研究思路与方法。
一、超平面
在高维空间中,超平面具有重要意义。在 (p) 维空间里,超平面是 (p – 1) 维的仿射子空间 ,其作用是将线性空间分割为不相交的两个部分。举例来说,在二维空间中,超平面呈现为一维子空间,即我们常见的直线;而在三维空间里,超平面是二维子空间,也就是一个平面。
在二维空间中,超平面的数学定义为:(B_0 + B_1x_1 + B_2x_2 = 0)。将其延伸至 (p) 维空间时,表达式变为 (B_0 + B_1X_1 + B_2X_2 + \cdots + B_pX_p = 0)。当向量 (x) 不满足此等式时,存在两种情况。若 (B_0 + B_1x_1 + B_2x_2 + \cdots + B_px_p > 0),这表明 (x) 处于超平面的一侧;若 (B_0 + B_1x_1 + B_2x_2 + \cdots + B_px_p < 0),则意味着 (x) 位于超平面的另一侧。所以,超平面能够把 (p) 维空间划分成两半。我们可以依据计算上述等式左侧所得到的符号,来判断某一点究竟位于超平面的哪一侧。
从分类的角度来看,可构建函数 (f(x^i)=B_0 + B_1x_1^i + B_2x_2^i + \cdots + B_px_p^i) 。若 (f(x^i)) 的符号为正,可将其判定为类别 (1);若 (f(x^i)) 的符号为负,则判定为类别 (-1) 。通过这样的方式,实现利用超平面对数据进行分类。
二、最大边缘分类器
最大边缘分类器的核心在于计算每个训练数据观测值到给定分割超平面的距离。其中,观测值到超平面的最小距离的长度被定义为边际。边际值最大的分割超平面,就被称作最大边缘超平面。也就是说,最大边缘超平面代表了训练观测数据到超平面最小距离的最大值。从某种程度而言,最大边缘超平面相当于在两类数据之间插入的最宽“板”的中线。
在实际操作中,距离超平面最近且满足一定条件的几个训练样本点被称作支持向量。这些支持向量支撑起了最大边缘超平面。只有当这些支持向量发生改变时,最大边缘超平面才会相应地改动,这意味着最大边缘超平面直接依赖于支持向量 。基于最大边缘超平面,我们能够对训练数据进行分类,这一过程就是最大边缘分类器的工作机制。
例如,图1展示了数据分布以及最大边缘超平面的位置关系。从图中可以直观地看到最大边缘超平面是如何在两类数据之间找到最宽的间隔,从而实现对数据的有效分类。
Yuqi Liu
可下载资源
9.Python用RNN循环神经网络:LSTM长期记忆、GRU门循环单元、回归和ARIMA对COVID-19新冠疫情新增人数时间序列预测
三、支持向量分类器
支持向量分类器,也被称为软边缘分类器。由于最大边缘分类器对数据较为敏感,在实际应用中可能会出现过拟合等问题 。因此,支持向量分类器旨在建立一个对个体观测值更为稳健的模型,能够对大多数训练观测值进行更好的分类。它是以牺牲少部分数据为代价,来实现对剩下观测数据的更优分类。
在数学表达上,通过一系列约束条件来确定模型参数。如公式:
在实际应用中,可通过如下代码来实现支持向量分类器(这里仅展示关键部分代码,并非完整代码):
# 导入所需库
import numpy as np
from sklearn.svm import SVC
# 假设已有训练数据x_train和y_train
# 创建支持向量分类器对象,设置参数C(对应上述c)
clf = SVC(C = 0.5)
# 训练模型
clf.fit(x_train, y_train)
在这段代码中,首先导入了必要的库,其中 numpy
用于数值计算,sklearn.svm
中的 SVC
是支持向量分类器的实现类。然后创建了 SVC
对象,并设置了参数 C
为 (0.5),这里的 C
就是上述提到的调节参数 (c) ,它控制着模型对数据的容忍度。最后通过 fit
方法使用训练数据对模型进行训练 。
可以由松弛变量 (\xi_j) 确定第 (j) 个观测值的位置。若 (\xi_j = 0),说明观测值位于边际正确的一侧;若 (\xi_j > 0),则观测值位于边际错误的一侧;若 (\xi_j > 1),观测值位于超平面错误的一侧。在实际操作时,调节参数 (c) 一般通过交叉验证来获取,以此实现对偏差和方差的平衡。通常情况下,(c) 值小,容忍度小,边际窄,偏差小,方差大;(c) 值大,容忍度大,边际宽,偏差大,方差小 。
例如,从图2中可以看到不同 (c) 值对分类结果的影响。当 (c) 值较小时,模型对数据的容忍度低,边际较窄,分类边界更严格;而当 (c) 值较大时,模型对数据的容忍度高,边际变宽,分类边界相对更宽松。
四、模拟与实证
本次模拟使用Khan数据集,该数据集由与四种不同类型的小圆蓝细胞肿瘤相对应的多个组织样本构成。对于每个组织样本,都能进行基因表达测量。数据集包含训练数据 (x_{train}) 和 (y_{train}) 以及测试数据 (x_{test}) 和 (y_{test}) 。该数据集涵盖了 (2308) 个基因的表达测量。训练集和测试集分别由 (63) 个和 (20) 个观察结果组成。如图3所示为数据集的相关信息可视化。
通过对超平面、最大边缘分类器以及支持向量分类器的理论分析和在Khan数据集上的模拟,我们可以看到这些方法在数据分类中的有效性和各自的特点。超平面为分类提供了基础的划分依据,最大边缘分类器在寻找最优分类边界上具有独特的优势,而支持向量分类器则通过引入调节参数,在稳健性和分类效果之间找到了更好的平衡。在实际的科研和应用场景中,可根据具体的数据特点和需求,选择合适的分类方法,以实现对数据的准确分类和分析。
R语言软件对房价数据预测:回归、LASSO、决策树、随机森林、GBM、神经网络和SVM可视化
在房地产市场中,准确地预测房屋价格是至关重要的。过去几十年来,随着数据科学和机器学习的快速发展,各种预测模型被广泛应用于房屋价格预测中。而R语言作为一种强大的数据分析和统计建模工具,被越来越多的研究者和从业者选择用于房屋价格预测。
本文将介绍帮助客户使用R语言软件进行房屋价格预测的几种常见方法,包括回归、LASSO、决策树、随机森林、GBM、神经网络和支持向量机(SVM)。通过这些方法的比较和分析,我们将探讨它们在房屋价格预测中的优势和不足,并通过可视化的方式展示它们的预测结果。
首先读取数据。
data=read.csv("Amsing.csv")
查看原始数据(直接从Ames评估办公室获得)用于税务评估目的,但本身直接预测房屋售价。
首先查看部分数据,以观看数据中有哪些变量。
head(data)
获取数据的基本统计量。
summary(data)
对房屋面积进行可视化,可以让我们对房屋的面积有一个直观的影响,从而也可以排除掉一部分异常点的影响。
从可视化结果来看,可以发现数据中存在较多的异常数据。可能会影响后续的预测过程,因此将它们去除。
查看数据结构
通过查看数据结构,我们可以了解到,哪些数据是数值变量比如房屋面积,总体质量建立年份,哪些数据是因此变量比如街道,土地坡度,房屋状况,哪些数据的因子有哪些。
str(data)
绘制相关散点图
通过绘制相关散点图,我们可以查看数值变量之间存在哪些关系?
看变量之间的相关系数,我们可以找到相关性高的变量:
从相关系数和散点图来看,我们可以看到,房屋价格 和房屋的总体质量,建立年份,房屋面积,房屋层高 等变量存在相关关系。
然后我们查看数据中是否存在共线性问题
kappa(corr, exact = T)
查看变量之间的boxplot图
正如我们从不同变量之间的箱线图和上面的房屋销售价格中看到的,高销售价格的房屋有更多的卧室、浴室和车库。
正如我们从房屋售价和质量之间的箱线图上看到的,高售价房屋的质量更高。
提取训练集,测试集
indices = sample(nrow(data), nrow(data)*0.7)
回归模型 linear regression
从回归模型的结果来看,我们可以看到部分变量是显著的,说明他们对房屋的价格,有很大的影响。显著的变量有车库面积,走廊,浴池,总体质量,房屋层高等等。从R方的结果来看,R方等于93%,因此,模型解释了房屋价格大部分的方差,可以说模型的拟合效果非常良好
残差表现来看模型的拟合好坏
左上方的图是一个散点图,用于表示拟合值和残差的关系。从图中可以看到,除了第二个异常值外,其余所有点都在纵坐标值-1和+1之间随机分布。
接下来的图是一个散点图,表示拟合值的标准化偏差和残差的关系,其意义与上述相似。右上方的图显示随机误差项服从正态分布,这是因为正态QQ图可以近似视为一条直线。
右下方的图进一步证实了第二个观察值是一个异常值,它对回归方程的影响相对较大。
lasso 模型
在建立lasso模型之后,我们绘制误差变化图
绘制系数变化图
LASSO回归复杂度调整的程度由参数λ来控制,λ越大对变量较多的线性模型的惩罚力度就越大,从而最终获得一个变量较少的模型。因此误差最小的点对应选取log(lamda)=9为最优模型。
regression trees 回归树模型
拟合模型
绘制决策树
从结果来看,房屋的价格主要受到总体质量,走廊,房屋层高,车库等因素影响
一般来说,车库面积越大,总体质量越高,层高越高,那么价格就越高
然后通过得到的决策树模型进行预测得到误差
random forests 随机森林模型
模型结果
从随机森林模型的结果来看, 一共生成了五百个随机树,房屋价格的方差被解释了76.75%
得到变量,重要性结果
从结果来看,可以得到和决策树类似的结论,可以看到,房屋建立的年份,以及车库面积房屋层高等因素对房屋的价格都有重要的影响。
对变量的重要性进行可视化
在得到模型之后,对测试集进行预测,并且得到误差
GBM模型
从模型结果来看,可以得到和决策树随机森林类似的结果。上面是相对重要性变量的图,可以看到建立年份,车库面积,房屋层高对房屋的价格有重要的影响
neural network 神经网络
建立神经网络模型
从结果来看,得到一个三层的神经网络以及641个神经元,得到的结果已经完全converged。因此模型拟合较好,所以对测试集进行预测,并且得到误差结果
SVM模型
用svm建立分类模型
使用回归核函数数据进行支持,向量机建模
从结果来看,可以得到它的最优参数以及支持向量的个数124个。在得到模型结果后,对测试集进行预测,并且得到误差结果。
总结评估
在对数据进行六个模型建模后,分别得到了每个模型的误差结果,然后我们将所有的误差结果进行汇总,并且比较每个模型的优劣。
测试误差:随机森林最小,回归次之,其他模型较大。准确度:随机森林最优,但训练复杂。效率:回归模型较高。解释度:决策树模型可解释,神经网络不可解释。其他模型需提高准确度。综上,推荐随机森林预测房屋价格。
关于分析师
Yuqi Liu
在此对 Yuqi Liu对本文所作的贡献表示诚挚感谢,他在浙江财经大学完成了应用统计专业的硕士学位,专注机器学习、数据挖掘、数据分析领域。擅长 R 语言、Python、MySQL 。