利用最小二乘法算法预测考研人数
随着就业压力越来越多,社会对学历要求越来越高,考研成为了提升就业竞争能力的首选。以下为小编收集的考研信息,用最小二乘法算法进行预测。
基本思想:求出这样一些未知参数使得样本点和拟合线的总误差(距离)最小
公式推导:
下表为我收集的1995年到2017年历届考研人数数据。
考硕年份 |
报名人数(万) |
报名增长率 |
录取人数(万) |
考录比例 |
1995 |
15.5 |
38.40% |
4 |
3.6:1 |
1996 |
20.4 |
31.80% |
4.7 |
4.4:1 |
1997 |
24.2 |
18.60% |
5.1 |
4.7:1 |
1998 |
27.4 |
13.20% |
5.8 |
4.7:1 |
1999 |
31.9 |
16.40% |
7.2 |
4.9:1 |
2000 |
39.2 |
22.90% |
10.3 |
4.6:1 |
2001 |
46 |
17.30% |
13.3 |
4.2:1 |
2002 |
62.4 |
35.70% |
16.4 |
3.2:1 |
2003 |
79.7 |
27.70% |
22 |
2.9:1 |
2004 |
94.5 |
18.60% |
33 |
2.9:1 |
2005 |
117.2 |
24% |
32.4 |
3.6:1 |
2006 |
127.1 |
8.40% |
40.2 |
3.2:1 |
2007 |
128.2 |
0.90% |
36.4 |
3.5:1 |
2008 |
123 |
-4.10% |
39 |
3.0:1 |
2009 |
124.6 |
1.30% |
47.5 |
2.6:1 |
2010 |
140 |
12.40% |
46.5 |
3:01 |
2011 |
151.1 |
7.90% |
49.5 |
3:01 |
2012 |
165.6 |
9.60% |
51.7 |
3.2:1 |
2013 |
176 |
6.30% |
53.9 |
3.3:1 |
2014 |
172 |
-2.30% |
57 |
3.0:1 |
2015 |
164.9 |
-4.10% |
49 |
3.3:1 |
2016 |
177 |
7% |
51.7 |
3.4:1 |
2017 |
201 |
13.56% |
-- |
预测4:1 |
使用代码的方法:将上面数据黏贴到EXCEL中,起名为ky.xlsx。放在工作路径下。运行下面代码就可以来了 。
matlab 代码
clc;clear;
%author:猪猪侠
%date:2015-12-19
%邮箱:2377389590@qq.com
[data,TEXT,RAW]=xlsread('ky.xlsx');%导入数据
Y1=data(:,2)'
year=1995:2020; %未来三年
beta1=sum(((year(1:23)-1995)-mean(year(1:23)-1995)).*(Y1-mean(Y1)))/sum(((year(1:23)-1995)-mean((year(1:23)-1995))).^2)
gamma1=mean(Y1)-beta1*mean((year(1:23)-1995))
YY1=gamma1+beta1.*([year-1995]) %预测报考人数
Y2=data(1:end-1,4)'
beta2=sum(((year(1:22)-1995)-mean(year(1:22)-1995)).*(Y2-mean(Y2)))/sum(((year(1:22)-1995)-mean((year(1:22)-1995))).^2)
gamma2=mean(Y2)-beta2*mean(year(1:22)-1995)
YY2=gamma2+beta2.*([year-1995]) %预测报考人数
plot(year,YY1,'r-s')
hold on
plot(year(1:23),data(:,2),'g-d')%实际人数
plot(year(1,1:22),Y2,'m-p')
plot(year,YY2,'b-h')
xlabel('年份')
ylabel('人数(万)')
legend('预测报考人数','实际报考人数','实际录取人数','预测录取人数')
set(gca,'XTick',[1995:1:2020])
grid on
预测结果图
看完了预测图,内心拔凉拔凉的,报考人数越来越多,录取比例相对于往年的录取比例呈现递增趋势,但是录取比例的增长变化率没有报考人数增长的变化率快;说明考上研究生的比例占总人数比例越来越小。不管怎么样!小编要努力学习了!加油!各位考研党!
更新:python代码
今天是2020年2月9日,无聊看了一下2年前的博客,现在用python写一下一元线性回归预测
import numpy as np
from matplotlib import pyplot as plt
y1=np.array([15.5,20.4,24.2,27.4,31.9,39.2,46,62.4,79.7,94.5,117.2,127.1,128.2,123,124.6,140,151.1,165.6,176,172,164.9,177,201])
y2=np.array([4,4.7,5.1,5.8,7.2,10.3,13.3,16.4,22,33,32,40.2,36.4,39,47.5,46.5,49.5,51.7,53.9,57,49,51.7,80.5])
x=np.arange(1,len(y1)+1)
b1=np.sum((x-np.mean(x))*(y1-np.mean(y1)))/np.sum((x-np.mean(x))**2)
b2=np.sum((x-np.mean(x))*(y2-np.mean(y2)))/np.sum((x-np.mean(x))**2)
a1=np.mean(y1)-b1*np.mean(x)
a2=np.mean(y2)-b2*np.mean(x)
X=np.arange(1,len(x)+3)
Y1=b1*X+a1
Y2=b2*X+a2
plt.plot(x,y1,'g-',label='实际报名人数')
plt.plot(X,Y1,'r-s',label='预测报名人数')
plt.plot(x,y2,'m-p',label='实际录取人数')
plt.plot(X,Y2,'b-h',label='预测录取人数')
plt.xlim(X.min(),X.max()+1)
plt.ylim(0,Y1.max()*1.1)
plt.grid(c='k',linestyle=':')
plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签
plt.rcParams['axes.unicode_minus']=False #解决负号“-”显示为方块的问题
plt.legend()
plt.show()
机器学习tensorflow训练一元线性模型预测(训练25000次)
参考2021年2月26自己写的博客tensorflow 线性回归 预测_猪猪侠-CSDN博客_tensorflow回归预测,稍加改动就行了,简单的一批
import numpy as np
from matplotlib import pyplot as plt
import tensorflow as tf
plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签
plt.rcParams['axes.unicode_minus']=False #解决负号“-”显示为方块的问题
y1=np.array([15.5,20.4,24.2,27.4,31.9,39.2,46,62.4,79.7,94.5,117.2,127.1,128.2,123,124.6,140,151.1,165.6,176,172,164.9,177,201])
y2=np.array([4,4.7,5.1,5.8,7.2,10.3,13.3,16.4,22,33,32,40.2,36.4,39,47.5,46.5,49.5,51.7,53.9,57,49,51.7,80.5])
x=np.arange(1,len(y1)+1)
model=tf.keras.Sequential([tf.keras.layers.Dense(1,input_shape=(1,))])
model.compile(optimizer='adam',loss='mse')
model.fit(x,y1,epochs=25000)#训练2.5w次
Y1=model.predict(x)
model.fit(x,y2,epochs=25000)#训练2.5w次
Y2=model.predict(x)
plt.plot(x,y1,'g-',label='实际报名人数')
plt.plot(x,Y1,'r-s',label='预测报名人数')
plt.plot(x,y2,'m-p',label='实际录取人数')
plt.plot(x,Y2,'b-h',label='预测录取人数')
plt.legend()
plt.show()
欢迎加群:707914447
function [k,b]=min2plot(x,y)
k=sum((x-mean(x)).*(y-mean(y)))/sum((x-mean(x)).^2);
b=mean(y)-k*mean(x);
end
%拟合情况
% [x,y]=XB_DataPrase(path,1024);
% f = fittype('a0 + a1*cos(x*w) + b1*sin(x*w)');
% ncoeffs = numcoeffs(f);
% coeffs = coeffnames(f);
% f = fittype('Fourier1');
% coeffnames(f);
% formula(f);
% [c,gof] = fit(x',y',f);
% coeffvalues(c)
利用最小二乘法算法预测考研人数相关推荐
- DL之GRU:基于2022年6月最新上证指数数据集结合Pytorch框架利用GRU算法预测最新股票上证指数实现回归预测
DL之GRU:基于2022年6月最新上证指数数据集结合Pytorch框架利用GRU算法预测最新股票上证指数实现回归预测 目录 基于2022年6月最新上证指数数据集结合Pytorch框架利用GRU算法预 ...
- 随机森林 html5,利用随机森林回归算法预测总有机碳含量
受美国"页岩气革命"的影响,页岩气勘探受到了大量的关注( 现有利用测井曲线预测TOC的方法有4类:①利用单曲线或多曲线建立回归关系的预测方法,如利用密度曲线(DEN)预测TOC.利 ...
- DL之LSTM:基于《wonderland爱丽丝梦游仙境记》小说数据集利用LSTM算法(层加深,基于keras)对单个character字符预测
DL之LSTM:基于<wonderland爱丽丝梦游仙境记>小说数据集利用LSTM算法(层加深,基于keras)对单个character字符预测 目录 基于<wonderland爱丽 ...
- ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测daiding
ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 目录 基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 设计思路 ...
- DL之GD:利用LogisticGD算法(梯度下降)依次基于一次函数和二次函数分布的数据集实现二分类预测(超平面可视化)
DL之GD:利用LogisticGD算法(梯度下降)依次基于一次函数和二次函数分布的数据集实现二分类预测(超平面可视化) 目录 利用LogisticGD算法(梯度下降)依次基于一次函数和二次函数分布的 ...
- ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测
ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 目录 基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 设计思路 ...
- ML之xgboost:利用xgboost算法对breast_cancer数据集实现二分类预测并进行graphviz二叉树节点图可视化
ML之xgboost:利用xgboost算法对breast_cancer数据集实现二分类预测并进行graphviz二叉树节点图可视化 目录 实现结果 实现代码 实现结果
- DL之CNN:利用CNN算法实现对句子分类+进行情感分析(预测句子情感)
DL之CNN:利用CNN算法实现对句子分类+进行情感分析(预测句子情感) 目录 CNN算法设计思路 代码实现 CNN算法设计思路 b 代码实现 后期更新--
- ML之xgboost:利用xgboost算法(自带,特征重要性可视化+且作为阈值训练模型)训练mushroom蘑菇数据集(22+1,6513+1611)来预测蘑菇是否毒性(二分类预测)
ML之xgboost:利用xgboost算法(自带,特征重要性可视化+且作为阈值训练模型)训练mushroom蘑菇数据集(22+1,6513+1611)来预测蘑菇是否毒性(二分类预测) 目录 输出结果 ...
最新文章
- exchange之2003迁移至2007
- for java_Java For循环
- send/recv阻塞和非租塞不同
- Programming Computer Vision with Python (学习笔记八)
- hdfs oiv命令查看FsImage镜像文件内容
- ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车前后左右综合实验
- 虚拟空间独立服务器哪个好,共享虚拟主机和独立哪个好
- java后端传object给js_【JSON】JSON在前端和后端传递
- pytorch flatten函数_1. PyTorch中的基本数据类型——张量
- 如何监听事件里发生的错误_Swing 如何进行事件监听
- RTL8188无线网卡AP功能的开发过程
- 重装系统(U盘篇+U盘复原)——保姆级教学
- 计算机专业建设会议纪要,智能控制教研室会议纪要6号
- 使用百度翻译API实现一键翻译
- css动画无限循环转圈,css实现无限循环
- appleid注册服务器错误,连接apple id 服务器时出错(Apple ID 验证连接失败,试试这招)...
- 鸿蒙和小米哪个值得入手,鸿蒙系统能够吸引小米的优势是什么
- gtx1050ti安装win10和ubuntu16.04双系统
- python 读取excel表格数据,然后写入word模板,批量生成
- 2.H.265/HEVC —— 帧内预测