如何利用线性回归来建立收入预测模型?
机器学习包含监督学习、非监督学习、以及强化学习三大部分。监督学习又分为分类和回归两大类。线性回归模型就属于监督学习里的回归模型。线性回归是通过属性的线性组合进行预测的函数,即
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表示所有预测跟真实结果完美匹配的情况。
如何利用线性回归来建立收入预测模型?相关推荐
- 利用ARIMA算法建立短期预测模型
周五福利日活动是电信为回馈老用户而做的活动,其主要回馈老用户的方式是让用户免费领取对应的优惠券,意在提升老用户的忠诚度和活跃度.今日,为保证仓库备货优惠券资源充足,特别是5元话费券等,需要对该类优惠券 ...
- 使用线性回归构建波士顿房价预测模型
使用线性回归构建波士顿房价预测模型 描述 波士顿房价数据集统计了波士顿地区506套房屋的特征以及它们的成交价格,这些特征包括周边犯罪率.房间数量.房屋是否靠河.交通便利性.空气质量.房产税率.社区师生 ...
- ML之RF:kaggle比赛之利用泰坦尼克号数据集建立RF模型对每个人进行获救是否预测
ML之RF:kaggle比赛之利用泰坦尼克号数据集建立RF模型对每个人进行获救是否预测 目录 输出结果 实现代码 输出结果 后期更新-- 实现代码 #预测模型选择的RF import numpy as ...
- 如何利用CRM软件建立有利可图的客户关系?
客户关系管理(CRM)技术彻底改变了企业与客户的接触方式.不过,在投资CRM之前,业务主管应该了解如何使用CRM软件建立客户关系,进而提高业务盈利能力. 为什么要建立客户关系? 在一些企业中,客户关系 ...
- 利用WOE IV建立用户流失模型
利用WOE & IV建立用户流失模型 现在流量红利越来越小,获新客的成本也越来越高,比如活动投资10万元,新客获客100个,获客成本就是100元/个,但是如果客单价平均50元,用户在整个生命周 ...
- CentOS 5.5 编译安装apache+php+mysql,利用CMS快速建立论坛
这个是转来的,细节没有验证,请网友自己斟酌.......... CentOS 5.5 编译安装apache+php+mysql,利用CMS快速建立论坛 1.安装Apache [root@bogon t ...
- EL之Bagging:kaggle比赛之利用泰坦尼克号数据集建立Bagging模型对每个人进行获救是否预测
EL之Bagging:kaggle比赛之利用泰坦尼克号数据集建立Bagging模型对每个人进行获救是否预测 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 bagging_clf = ...
- Numpy:利用Numpy库建立可视化输入的二次函数数据点集np.linspace+np.random.shuffle+np.random.normal
Numpy:利用Numpy库建立可视化输入的二次函数数据点集np.linspace+np.random.shuffle+np.random.normal 目录 输出结果 代码设计 输出结果 代码设计 ...
- 利用训练数据建立一个简单的分类器
利用训练数据建立一个简单的分类器 在机器学习领域中,分类指的是利用数据的特性将其分成若干类型的过程.分类器则可以是实现分类功能的任意算法,最简单的分类器就是简单的数字函数.在真实世界中,分类器可以是非 ...
最新文章
- Dos下cd不起作用详解...
- 一文读懂什么是Java中的自动拆装箱
- 详解vector容器(应用+模拟实现,vector相关练习题)
- VS2017编译的一些小知识记录
- 扫雷计算机教案,《扫雷游戏》教学设计
- 访问数组元素的 3 种方法
- key php 转小写_PHP开发常识
- Android内存优化2 了解java内存分配 2
- php mysql 进销存_PHP进销存源码 仓库管理系统 WEB进销存 php+mysql 网络版进销存
- 任天堂残酷马里奥游戏
- 算法实现 int sqrt(int x) 函数。
- mysqld: [ERROR] Found option without preceding group in config file D:\MySql\MyS ql\my.ini at line 1
- 100个标题模板,让你分分钟写出10万+爆文!
- 协方差,协方差矩阵,矩阵特征值
- Linux 内核监控在 Android 攻防中的应用
- 编译原理 START 龙虎鲸书简介
- 弃IBM持苹果,股神巴菲特眼中的科技迭代
- H5获取屏幕的宽度和高度
- mysql Convert/Import MWB to SQL File in workbench
- 2021年安全员-B证新版试题及安全员-B证证考试