前面有用爬虫抓取了一些简历数据,现在项目里有一个地方是要预测个人的薪资。这个需求用python来实现的话肯定会轻松很多,毕竟python有大量的计算库,php主要是web方面的。

确定了选用什么语言来写后,它们之间的对接用最省心的http协议来对接

算法原理很简单,就是用的多元线性回归来预测。

训练字段用的有:工作年限,行业,学历 目标字段:薪资

代码量还是很少的,毕竟靠的是后续调参和数据量撑起来的,但是效果还是挺不错的,预测的数据挺符合现实

不废话了,下面看代码和注释,还是很简单的:

首先是训练模型的代码:

import pandas as pd

import pickle

from sklearn.preprocessing import LabelEncoder as LE

from sklearn.linear_model import LinearRegression as LR

# 读取数据

train = pd.read_csv('./salary.csv')

# 数据预处理

# 去除空值

train.dropna(axis=0,how='any',inplace=True)

# 月薪分类处理为连续

def wage_cate(wage):

if wage <= 61:

return wage - 55

elif 61 < wage:

return wage - 425

train['Wage'] = train['Wage'].apply(wage_cate)

# 月薪分类还原

def wage_cate_re(cate):

if cate <= 6:

return cate + 55

elif cate > 6:

return cate + 425

# 多元线性回归模型

le = LE()

# 特征选择

X = train[['Years','Trade','Maxeducation']]

# 结果集

y = train['Wage']

# 模型学习

model = LR()

sa = model.fit(X,y)

# 保存模型

file = open('./model.pickle', 'wb')

# 把模型写入到文件中

pickle.dump(model, file)

# 关闭文件

file.close()

接着是预测代码,顺便加了flask用来做为web服务器和php代码对接:

from flask import Flask

from flask import request

import math

import pickle

# 以读二进制的方式打开文件

file = open("./model.pickle", "rb")

# 把模型从文件中读取出来

model = pickle.load(file)

# 关闭文件

file.close()

app = Flask(__name__)

@app.route('///',methods=['GET','POST'])

def home(years,trade,education):

pred = wage_cate_re(round(float(wage_pred(int(years),int(trade),int(education)))))

return str(pred)

# 月薪分类还原

def wage_cate_re(cate):

if cate <= 6:

return cate + 55

elif cate > 6:

return cate + 425

# 构建预测函数

def wage_pred(Years,trade,education):

pred = model.predict([[Years,trade,education]])

return pred

if __name__ == '__main__':

app.run()

代码提示:

月薪分类这个函数的存在是因为数据库里面这个分类不是连续的,训练数据的时候要把它处理成连续值。

代码总体很简单:其他端请求格式:http://127.0.0.1:5000/years/trade/education,

这三个参数实际使用要换成相应数字

python工资等级分类程序-php项目中用python来预测薪资(工资)相关推荐

  1. 视频教程-Python疫情监控完整项目实战-Python

    Python疫情监控完整项目实战 数据产品讲师,人工智能探索者,15年一线IT研发经验,国内顶级互联网行业工作背景,社区达人,著有长篇连载<胖子哥的大数据之路>,<数据实践之美> ...

  2. 笨办法学Python(第四版)最新版+Python爬虫开发与项目实战+Python网络数据采集+精通Scrapy网络爬虫

    笨办法学Python(第四版)最新版+Python爬虫开发与项目实战+Python网络数据采集+精通Scrapy网络爬虫 本资料为最新整理高清带目录pdf,百度网盘下载~~~ 本资料为最新整理高清带目 ...

  3. python工资等级分类程序-看到抖音上Python工程师晒得工资条,我沉默了......

    先从 Python 的发展历史开始,介绍 Python 的基本语法规则,Python 的 list, dict, tuple 等数据结构,然后再介绍字符串处理和正则表达式,介绍文件等 IO 操作,再介 ...

  4. python能做什么项目好-python能做什么项目

    大家在学完python基础之后,突然迷茫起来了,这时就需要一些项目练练手,增加自己的经验,同时找到自己的不足. Python3 实现火车票查询工具(推荐学习:Python视频教程) 使用 Python ...

  5. python可以做什么项目-适合Python 新手的5大练手项目,你练了么?

    已经学习了一段时间的Python,如果你看过之前W3Cschool的文章,就知道是时候该进去[项目]阶段了. 但是在练手项目的选择上,还存在疑问?不知道要从哪种项目先下手? W3Cschool首先有两 ...

  6. python能做什么项目-用python真的可以做很多有趣的事!我自己做了些小项目!大家看看...

    如果你是一个喜剧爱好者,你实际上可以用Python自动下载所有的动画,没有一个下载. Python还可以帮助组织混乱的文件夹. 整理前: 后整理: 不要错过最新的消息. 我非常喜欢看电影.我想整理我电 ...

  7. python能做什么项目-适合Python 新手的5大练手项目,你练了么?

    已经学习了一段时间的Python,如果你看过之前W3Cschool的文章,就知道是时候该进去[项目]阶段了. 但是在练手项目的选择上,还存在疑问?不知道要从哪种项目先下手? W3Cschool首先有两 ...

  8. python编程快速上手项目答案-python编程快速上手之第5章实践项目参考答案

    1 #!/usr/bin/env python3.5 2 #coding:utf-8 3 #5.6.1 4 #好玩游戏的物品清单 5 #给定一个字典,包含物品名称和数量,并打印出数量对应的物品 6 7 ...

  9. python适合做后端开发吗-Python真的不适合做后端开发语言吗?

    2019-04-03 列举一些比较有名的网站或应用.这其中有一些是用python进行开发,有一些在部分业务或功能上使用到了python,还有的是支持python作为扩展脚本语言.数据大部分来自Wike ...

最新文章

  1. 零基础Java学习之包(Package)
  2. Java里main的写法_main方法的深入理解和例子
  3. 上海网络推广浅析一个优质的404页面能给网站带来什么优化效果?
  4. MATLAB知识点1
  5. Spring框架中的设计模式(五)
  6. QT的QModbusRequest类的使用
  7. 【Linux】一步一步学Linux——wget命令(192)
  8. Spring Boot – spring.config.name –案例研究
  9. Scrapy 框架【学习笔记01】
  10. (转)SQL Server当中生成一定范围的随机数
  11. 数据标准是物联网大集成应用的核心
  12. 7-8 jmu-ds-顺序表区间元素删除 (15 分)
  13. 嵌入式Linux驱动学习之路(二)u-boot体验
  14. SVM 超平面方程
  15. php判断是否是浏览器请求,php 判断请求是否来自“手机浏览器”
  16. 新员工月度计划制定心得
  17. 【文化课每周学习记录】2019.4.7——2019.4.13
  18. win7关于无线连接的服务器,win7网络连接受限
  19. 504_linux内核学习___va_rounded_size宏分析
  20. Litepal在没有存数据之前,需要在主线程中去先去存一些不必要的数据

热门文章

  1. oracle Hash Join及三种连接方式
  2. word2010忽然无法撤销
  3. net项目总结一(1)
  4. 27. 代码实例-spring声明式事务
  5. 2006年世界杯小组赛日程表
  6. SQL的多种JOIN
  7. CodeForces - 985F Isomorphic Strings
  8. livebos--流程节点判断
  9. scikit-learn Adaboost类库使用小结
  10. 洛谷P1467 循环数 Runaround Numbers