标注:

1.概率密度没有学好,所以涉及到密度函数部分会有不少地方感觉非常难懂吃力

如何理解回归?

个人理解:回归是指 量化 {变量} 之间“关系”

线性回归的英文regression towards the mean。mean在英文中是平均值的意思。

求平均值通常是我们面对大量数据时,快速建立对数据的概念的方式。

比如:

  • 1.中国人均生育1.3个孩子(被动养孩万岁)
  • 北京人均餐饮消费40元(一单外卖吃40,坑爹)
  • 智能手机均价2800元(此处由小米用户组成底部)

拿一组数据做分布图看

引用:北京市统计局 图:2017年北京市城镇居民收入层级分布对比图(城镇居民人均可支配收入)

图随便找的哈,只用看单边;我们可以估算出,北京城镇居民年人均可支配收入估计是在5-6万附近(帮忙算个平均数。。),我们也能大概估出来,随便找个工作,应该能在10712元。(老板听着头大)

那么,如何估算自己工资具体可以拿多少呢?

我们可以直接问老板(PIA!打脸)

Life is short,Show Me The Data!

没有数据说个毛啊

人生会不会像高考一样呢?语文+数学+英语+化学+物理+生物+政治+历史+地理 = 最终的成功人士排位呢?

很可惜,生活不只苟且,还有家庭背景、家庭背景、家庭背景等等的异常因素会影响你的排位。

但大城市的工资还是比较公平的,除了极个别的异常值,其他是可以进行预测的:

最低工资*θ0 × 公司类型*θ1 × 最高学历*θ2 × 学校排名*θ3 × 工作年限*θ4 × 长相*θ5 ≈ 工资

θ0~θ5为假设的参数,公司类型、最高学历等量化成数值,最低工资一般为一个莫(qian)须(gui)有(ze)的值,我们就直接用θ0代替

Y = x1*θ1 + x2*θ2 + x3*θ3 + x4*θ4 + x4*θ4 + x5*θ5 + θ0

那么我们来对身边的人做一些简单的调查

尼古拉斯·赵四锝朋友圈
序号 姓名 性别 公司类型 最高学历 学校排名 工作年限(年) 长相(分) 工资(元)
1 尼古拉斯•赵四 种花象牙山村村委理事会 1.小学 131429 1 2 200
2 亚历山大•小宝 巨硬科技有限公司 2.初中 64536 8 1 12,000
3 富兰克林•谢广坤 象牙山饭庄五部 2.初中 79080 12 7 18,000
4 克里斯蒂安•刘能 东北二人转技术学院 3.高中 26533 5 3 250
5 弗朗西斯•沈阳 美国加里敦大学 5.博士 9654 3 9 25,000
6              

在anaconda环境下创建数据集

import pandas as pd
employ = {'序号':[1,2,3,4,5],'姓名':['尼古拉斯•赵四','亚历山大•小宝','富兰克林•谢广坤','克里斯蒂安•刘能','弗朗西斯•沈阳'],'性别':['男','男','男','男','无'],'公司类型':['种花象牙山村村委理事会','巨硬科技有限公司','象牙山饭庄五部','东北二人转技术学院','美国加里敦大学'],'最高学历':[1,2,2,3,5],'学校排名':[131429,64536,79080,26533,9654],'工作年限(年)':[1,8,12,5,3],'长相(分)':[2,1,7,3,9],'工资(元)':[200,12000,18000,250,25000]}
df = pd.DataFrame(employ,columns=['序号','姓名','性别','公司类型','最高学历','学校排名','工作年限(年)','长相(分)','工资(元)'])   #指定列名排序
df

import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
plt.rcParams['font.sans-serif']=['SimHei']x = df['长相(分)']
y = df['工资(元)']
# 散点图
plt.scatter(x, # x轴数据为长相y, # y轴数据为工资s = 30, # 设置点的大小 c = 'black', # 设置点的颜色marker = 'o', # 设置点的形状alpha = 0.9, # 设置点的透明度linewidths = 0.3, # 设置散点边界的粗细label = '样本点')
# 建模
reg = LinearRegression().fit(x.values.reshape(-1,1), y)
# 回归预测值
pred = reg.predict(x.values.reshape(-1,1))# 绘制回归线
plt.plot(x, pred, linewidth = 2, label = '拟合的回归线')# 添加轴标签和标题
plt.title("长相跟工资的关系")
plt.xlabel("长相(分)")
plt.ylabel("工资(元)")# 去除图边框的顶部刻度和右边刻度
# plt.tick_params(top = 'off', right = 'off')
# 显示图例
plt.legend(loc = 'upper left')plt.show()

(因为多个维度无法用平面描述,所以就先做长相和工资的关系)

很明显长相和工资成正相关,但是不排除有异常值,‘亚历山大•小宝’颜值只有一分,但是却在巨硬工资当程序员,工资还是挺高的。

那么,这上面拟合的回归线是怎么拟合出来的呢?

摘自:欧姆社学习漫画,统计学之回归分析

看图可以理解为求每一个点到直线的距离,当所有的点距离的和最小时,回归最优。(最小二乘法)

且这个只是两维表达方式。。。多维。。你看着办

然后如果是学统计学的同学,则需要回顾一下R方和假设检验,估计这个在时间序列预测中是挺重要的

当然这里省略掉了数学公式、对数最大似然估计和梯度下降

下一章我们来推公式

【机器学习基础】乡村F4带你入门线性回归 带python代码示例(一)相关推荐

  1. NLP将迎来黄金十年,7个案例带你入门(附Python代码)

    导读:近日,微软研究院发文称,NLP即将迎来"黄金十年".他们认为,各领域对NLP的需求会大幅度上升,对NLP质量也提出更高要求.如果你想赶上这"黄金十年",现 ...

  2. 机器学习基础:理解梯度下降本质「附Python代码」

    https://www.toutiao.com/a6646958932096975373/ 2019-01-16 13:15:26 今天我们尝试用最简单的方式来理解梯度下降,在之后我们会尝试理解更复杂 ...

  3. 机器学习基础(二十)—— 数学语言与 Python 代码

    (1)加权求和就是计算内积: (2)加权(weighted)的权值用于衡量重要程度 (3)编程语言中的赋值即更新,尤其在 iterative process: w←w+λv \mathbf{w}\le ...

  4. 【机器学习】太香啦!只需一行Python代码就可以自动完成模型训练!

    自动化机器学习(Auto-ML)是指数据科学模型开发的管道组件自动化.AutoML 减少了数据科学家的工作量并加快了工作流程.AutoML 可用于自动化各种管道组件,包括数据理解,EDA,数据处理,模 ...

  5. python代码示例-总算知道python入门代码示例

    Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.作为今年来越来越流行的语言,我们该如何学习或者转行学习Python呢,这里小迹为大家介绍如何入门学习Python.以下是小编为你整理 ...

  6. python代码示例大全 下载-python基础代码大全

    [实例简介] python代码大全,适用于基础python学习者,里面的代码基本上是基础学习者必经过程. Python学习入门很快,但学习之路任重道远 [实例截图] [核心代码] python代码大全 ...

  7. 【机器学习】一文读懂层次聚类(Python代码)

    本篇和大家介绍下层次聚类,先通过一个简单的例子介绍它的基本理论,然后再用一个实战案例Python代码实现聚类效果. 首先要说,聚类属于机器学习的无监督学习,而且也分很多种方法,比如大家熟知的有K-me ...

  8. python代码测试_Python入门学习系列——Python代码测试

    Python代码测试 对于编写的代码,可以使用unittest模块中的相关方法进行测试. 测试函数 首先定义一个简单的函数,该函数用来合并名称并返回. name_function.py: def ge ...

  9. python入门代码-Python入门学习系列——Python代码测试

    Python代码测试 对于编写的代码,可以使用unittest模块中的相关方法进行测试. 测试函数 首先定义一个简单的函数,该函数用来合并名称并返回. name_function.py: def ge ...

最新文章

  1. Unix环境高级编程(二十一)数据库函数库
  2. 【转】HTML全解(1)
  3. docker commit 命令
  4. iOS 分类思想(2)
  5. php xml 格式化,php简单处理XML数据的方法示例
  6. IntelliJ Idea 2017 免费激活方法
  7. 在 Mac OS X Lion 下修改 Hosts 的四种方法
  8. 解决VS2013或2017中类似于:error C4996: 'scanf': This function or variable may be unsafe的问题
  9. (转)为Ubuntu安装翻译词典(星际译王)
  10. 【论文阅读】Table-to-text Generation by Structure-aware Seq2seq Learning
  11. JSONObject简单测试使用
  12. 统计单词个数 状态机方法
  13. matlab人脸识别论文,基于matlab的人脸识别系统设计本科毕业论文(设计).doc
  14. web开发第三方登陆之facebook登陆
  15. mysql 如何去掉毫秒_mysql 如何去掉毫秒值
  16. Android四大组件之一服务(Service)
  17. js jquery 3D模型展示
  18. 安卓统一推送联盟 10 月 16 日正式成立
  19. OpenCV 陷波滤波器消除周期性噪音 C++
  20. json和ajax的使用

热门文章

  1. [网络爬虫|smtp协议|python]东方财富网爬虫,python smtp协议发送爬取数据至QQ邮箱
  2. 东方财富板块资金python抓取
  3. 【高并发专题】-高并发下前后端常用解决方案总结(全套)
  4. 华为2023年研发实习生招聘
  5. Vue | 使用Vue脚手架 【脚手架的基本使用+ref属性+props属性+mixin混入+插件scoped样式+TodoList+浏览器本地存储+组件的自定义事件+全局事件总线+过度与动画】
  6. 五位杰出的中国女科学家--巾帼不让须眉,见证科技中的“她力量”
  7. 邬江兴-拟态计算与拟态安全
  8. 二项分布的期望和方差
  9. 关于强类型语言和无(弱)类型语言——致编程入门者
  10. JAVA基础 :数据类型