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

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表示所有预测跟真实结果完美匹配的情况。

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

  1. 利用ARIMA算法建立短期预测模型

    周五福利日活动是电信为回馈老用户而做的活动,其主要回馈老用户的方式是让用户免费领取对应的优惠券,意在提升老用户的忠诚度和活跃度.今日,为保证仓库备货优惠券资源充足,特别是5元话费券等,需要对该类优惠券 ...

  2. 使用线性回归构建波士顿房价预测模型

    使用线性回归构建波士顿房价预测模型 描述 波士顿房价数据集统计了波士顿地区506套房屋的特征以及它们的成交价格,这些特征包括周边犯罪率.房间数量.房屋是否靠河.交通便利性.空气质量.房产税率.社区师生 ...

  3. ML之RF:kaggle比赛之利用泰坦尼克号数据集建立RF模型对每个人进行获救是否预测

    ML之RF:kaggle比赛之利用泰坦尼克号数据集建立RF模型对每个人进行获救是否预测 目录 输出结果 实现代码 输出结果 后期更新-- 实现代码 #预测模型选择的RF import numpy as ...

  4. 如何利用CRM软件建立有利可图的客户关系?

    客户关系管理(CRM)技术彻底改变了企业与客户的接触方式.不过,在投资CRM之前,业务主管应该了解如何使用CRM软件建立客户关系,进而提高业务盈利能力. 为什么要建立客户关系? 在一些企业中,客户关系 ...

  5. 利用WOE IV建立用户流失模型

    利用WOE & IV建立用户流失模型 现在流量红利越来越小,获新客的成本也越来越高,比如活动投资10万元,新客获客100个,获客成本就是100元/个,但是如果客单价平均50元,用户在整个生命周 ...

  6. CentOS 5.5 编译安装apache+php+mysql,利用CMS快速建立论坛

    这个是转来的,细节没有验证,请网友自己斟酌.......... CentOS 5.5 编译安装apache+php+mysql,利用CMS快速建立论坛 1.安装Apache [root@bogon t ...

  7. EL之Bagging:kaggle比赛之利用泰坦尼克号数据集建立Bagging模型对每个人进行获救是否预测

    EL之Bagging:kaggle比赛之利用泰坦尼克号数据集建立Bagging模型对每个人进行获救是否预测 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 bagging_clf = ...

  8. Numpy:利用Numpy库建立可视化输入的二次函数数据点集np.linspace+np.random.shuffle+np.random.normal

    Numpy:利用Numpy库建立可视化输入的二次函数数据点集np.linspace+np.random.shuffle+np.random.normal 目录 输出结果 代码设计 输出结果 代码设计 ...

  9. 利用训练数据建立一个简单的分类器

    利用训练数据建立一个简单的分类器 在机器学习领域中,分类指的是利用数据的特性将其分成若干类型的过程.分类器则可以是实现分类功能的任意算法,最简单的分类器就是简单的数字函数.在真实世界中,分类器可以是非 ...

最新文章

  1. Dos下cd不起作用详解...
  2. 一文读懂什么是Java中的自动拆装箱
  3. 详解vector容器(应用+模拟实现,vector相关练习题)
  4. VS2017编译的一些小知识记录
  5. 扫雷计算机教案,《扫雷游戏》教学设计
  6. 访问数组元素的 3 种方法
  7. key php 转小写_PHP开发常识
  8. Android内存优化2 了解java内存分配 2
  9. php mysql 进销存_PHP进销存源码 仓库管理系统 WEB进销存 php+mysql 网络版进销存
  10. 任天堂残酷马里奥游戏
  11. 算法实现 int sqrt(int x) 函数。
  12. mysqld: [ERROR] Found option without preceding group in config file D:\MySql\MyS ql\my.ini at line 1
  13. 100个标题模板,让你分分钟写出10万+爆文!
  14. 协方差,协方差矩阵,矩阵特征值
  15. Linux 内核监控在 Android 攻防中的应用
  16. 编译原理 START 龙虎鲸书简介
  17. 弃IBM持苹果,股神巴菲特眼中的科技迭代
  18. H5获取屏幕的宽度和高度
  19. mysql Convert/Import MWB to SQL File in workbench
  20. 2021年安全员-B证新版试题及安全员-B证证考试

热门文章

  1. 强化学习个人学习总结
  2. 数据分析驱动数字化企业转型
  3. 新一轮勒索病毒变种全球肆虐 中国已遭攻击
  4. 超全MES系统知识普及,必读此文
  5. 不选主元Gauss消去法
  6. 3的16次方用计算机怎么算,excel2016次方公式怎么用
  7. Dell戴尔笔记本电脑游匣G15 5510原装出厂OEM系统恢复原厂自带Windows10系统
  8. mac应用程序不能打开问题解决
  9. 刘涛代言的美丽田园冲刺港股:年内盈利2亿 突击分红1.2亿
  10. 【Tableau】如何使用tableau进行两列数据的运算