700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 如何利用线性回归来建立收入预测模型?

如何利用线性回归来建立收入预测模型?

时间:2021-10-23 13:53:40

相关推荐

如何利用线性回归来建立收入预测模型?

机器学习包含监督学习、非监督学习、以及强化学习三大部分。监督学习又分为分类和回归两大类。线性回归模型就属于监督学习里的回归模型。线性回归是通过属性的线性组合进行预测的函数,即

f(x)=w1.x1+w2.x2+w3.x3+...+wn.xn+bf(x) = w1.x1+w2.x2+w3.x3+...+wn.xn+b

向量形式为:f(x)=wT∗x+bf(x)=wT∗x+b

其中 w=(w1,w2,w3,...,wn)

假设我们需要利用线性回归来预测收入数据,具体的建模过程可以简化成如下几个方面:

一、确定目标:

比如我们想要预测月收入数据,在线性回归中,月收入是自变量,各种属性是因变量,确定好目标后,就可以进行第二步操作。

二、数据采集:

采集我们觉得有用的各种变量,例如客户的基本属性、行为属性等变量。将建模用的客户和需要预测的客户分别建立宽表。

三、数据预处理:

经过数据取样拿到的数据还不能直接使用,原因是数据还比较粗糙,需要经过预处理的阶段才能使用。

1、 缺失值检测:

首先要对采集好的数据检测缺失值的占比,如果是缺失过高的变量,就要直接去掉。缺失值不多的变量需要补充缺失值。

PySpark可以直接计算出各变量的缺失值占比

2、 离群点检测:

离群点检测有多种方法,这里我们用箱型图方法使用五数概况绘制一元输入数据:最小的非离群点值(Min)、第一个四分位数(Q1)、中位数(Q2)、第三个四分位数(Q3)和最大的非离群点值(Max)。计算四分位数极差(IQR)定义为Q3-Q1。比Q1小1.5倍的IQR或者比Q3大1.5倍的IQR的任何对象都视为离群点,因为Q1-1.5*IQR和Q3+1.5*IQR之间的区域包含了99.3%的对象。对于离群点补充95%和5%分位数对应的数据。

分位数利用PySpark中自带函数可直接计算出,式中最后一个参数越小,系统耗时越长,设为0时精度最高。

3、 数值型标准化:

利用PySpark的MaxAbsScaler函数转换Vector行的数据集,将数据映射到[0,1]的范围内,如果有负值,则将负值映射到[-1,0]的范围内,它不会移动/居中数据,因此不会破坏任何稀疏性。

4、 字符型数据转独热编码:

字符型数据要转成数值型才能进行模型预测,字符型数据分为两种情况,一种是有大小排序的,例如年龄,职级等,这里可以直接定义一个字典,年龄20-30岁转为数字1,30-40岁转为数字2,以此类推;另一种是无大小排序的,例如籍贯、性别,针对这样的数据就要使用独热编码,转成二进制的数据。

四、模型建立:

线性回归是最为人熟知的建模技术,是人们学习如何预测模型时的首选之一。在此技术中,因变量是连续的,自变量可以是连续的也可以是离散的。回归的本质是线性的。

线性回归通过使用最佳的拟合直线(又被称为回归线),建立因变量(Y)和一个或多个自变量(X)之间的关系。

它的表达式为:Y=a*X+e,其中 a为直线斜率,e 为误差项。如果给出了自变量 X,就能通过这个线性回归表达式计算出预测值,即因变量 Y。

PySpark实现线性回归代码如下:

五、模型评估

回归模型常用的评估指标均方误差根(RMSE)和R-平方(R2)。其中,RMSE是预测值与真实值的误差平方根的均值。

R2方法是将预测值跟只使用均值的情况下相比,看能好多少。其区间通常在(0,1)之间。0表示还不如什么都不预测,直接取均值的情况,而1表示所有预测跟真实结果完美匹配的情况。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。