Educode--机器学习基础模型与算法测试闯关实验
第1关:线性回归模型应用
实现代码:
# -*- coding: utf-8 -*-
'''
油气藏的储量密度Y与生油门限以下平均地温梯度X1、
生油门限以下总有机碳百分比X2、生油岩体积与沉积岩体积百分比X3、砂泥岩厚度百分比X4、
有机转化率X5有关,数据文件为“1.xlsx”,字段如下:
样本ID X1 X2 X3 X4 X5 Y
(注:数据取自教材《Matlab数据分析方法》)
任务如下:
(1)利用线性回归分析命令,求出Y与5个因素之间的线性回归关系式系数向量c_x和常数项c_b
(2)求出线性回归关系的判定系数Slr
(3)今有一个样本X1=4,X2=1.5,X3=10,X4=17,X5=9,试预测该样本的Y值。
'''
def return_values():
import pandas as pd
import numpy as np
# 1.数据获取
data = pd.read_excel('1.xlsx')
x = data.iloc[:,1:6]
y = data.iloc[:,6]
# 2。导入线性回归模型,简称为LR
from sklearn.linear_model import LinearRegression as LR
lr = LR() #创建线性回归模型类
lr.fit(x, y) #拟合
Slr=lr.score(x,y) # 判定系数 R^2
c_x=lr.coef_ # x对应的回归系数
c_b=lr.intercept_ # 回归系数常数项
# 3.预测
x1=np.array([4,1.5,10,17,9])
x1=x1.reshape(1,5)
Y=lr.predict(x1) #采用自带函数预测
return(c_x,c_b,Slr,Y)
第2关:分类模型及应用
实现代码:
# -*- coding: utf-8 -*-
'''
企业到金融商业机构贷款,金融商业机构需要对企业进行评估。评估结果为0和1两种形式,
0表示企业两年后破产,将拒绝贷款;而1表示企业2年后具备还款能力,可以贷款。
表"2.xlsx",字段如下:企业编号、X1、X2、X3、Y,
(数据取自《Matlab在数学建模中的应用(第2版)》,卓金武,37页)
已知前20家企业的三项评价指标值和评估结果,试建立逻辑回归模型对剩余5家企业进行评估。
返回模型准确率rv和模型评估结果R
'''
def return_values():
import pandas as pd
data = pd.read_excel('2.xlsx')
x_train=data.iloc[:20,1:4]
y_train=data.iloc[:20,4]
x_test=data.iloc[20:,1:4]
from sklearn.linear_model import LogisticRegression as LR
clf = LR()
clf.fit(x_train, y_train)
rv=clf.score(x_train, y_train)
R=clf.predict(x_test)
return(rv,R)
第3关:主成分分析、K-均值聚类应用
实现代码:
# -*- coding: utf-8 -*-
'''
我国各地区普通高等教育发展状况数据"3.xlsx":首列为“地区”,其他列依次为:
x1-为每百万人口高等院校数
x2-为每十万人口高等院校毕业生数
x3-为每十万人口高等院校招生数
x4-为每十万人口高等院校在校生数
x5-为每十万人口高等院校教职工数
x6-为每十万人口高等院校专职教师数
x7-为高级职称占专职教师比例
x8-为平均每所高等院校的在校生数
x9-为国家财政预算内普通高教经费占国内生产总值比重
x10-为生均教育经费。
(注:数据取自教材《数学建模算法与应用(第2版)》司守奎)
任务如下:
1.对以上指标数据做主成分分析,并提取主成分(累计贡献率达到90%以上即可)。
2.基于提取的主成分,对以上30个地区做K-均值聚类分析(K=4)。
3.返回聚类结果,用一个序列Fs来表示,其中index为地区名称,值为类别标签
注意类别标签值按升序排列。
'''
def return_values():
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans
from sklearn.decomposition import PCA
#1.数据获取
data = pd.read_excel('3.xlsx')
X=data.iloc[:,1:]
pca=PCA(n_components=0.90)
pca.fit(X)
f=pca.transform(X) #主成分
f=pd.DataFrame(f)
# 标准化
scaler = StandardScaler()
scaler.fit(f)
XZ=scaler.transform(f)
model = KMeans(n_clusters = 4, random_state=0, max_iter = 500)
model.fit(XZ) #开始聚类
c=model.labels_
Fs=pd.Series(c,index=data['地区'])
Fs=Fs.sort_values(ascending=True)
return Fs
第4关:多因变量神经网络回归应用
实现代码:
# -*- coding: utf-8 -*-
'''
公路运量主要包括公路客运量和公路货运量两个方面。
根据研究,某地区的公路运量主要与该地区的人数、机动车数量和公路面积有关,
表"4.xlsx"给出了某个地区20年的公路运量相关数据,字段如下:
年份、人数(万人)、机动车数量(万辆)、公路面积(万平方千米)、
公里客运量(万人)、公里货运量(万吨)
根据相关部门数据,该地区2010年和2011年的人数分别为73.39万和75.55万,
机动车数量分别为3.9635万辆和4.0975万辆,公路面积分别为0.9880万平方千米和1.0268万平方千米。
请利用BP神经网络预测该地区2010年和2011年的公路客运量和公路货运量,记为y1(2*2的数组)
'''
def return_values():
import pandas as pd
import numpy as np
from sklearn.neural_network import MLPRegressor as MP
# 1.数据获取
data = pd.read_excel('4.xlsx')
x_train=data.iloc[:,1:4]
y_train=data.iloc[:,4:6]
clf = MP(solver='lbfgs', alpha=1e-5,hidden_layer_sizes=8, random_state=1)
clf.fit(x_train, y_train);
a=np.array([[73.39,3.9635,0.9880],[75.55,4.0975,1.0268]]) #预测2010和2011年
y1=clf.predict(a)
return y1
第5关:布尔数据集构建、关联规则挖掘应用
实现代码:
# -*- coding: utf-8 -*-
'''
假设有数据集"5.xlsx",每行代表一个顾客在超市的购买记录,内容如下:
I1、西红柿、排骨、鸡蛋、毛巾、水果刀、苹果
I2、西红柿、茄子、水果刀、香蕉
I3、鸡蛋、袜子、毛巾、肥皂、苹果、水果刀
I4、西红柿、排骨、茄子、毛巾、水果刀
I5、西红柿、排骨、酸奶、苹果
I6、鸡蛋、茄子、酸奶、肥皂、苹果、香蕉
I7、排骨、鸡蛋、茄子、水果刀、苹果
I8、土豆、鸡蛋、袜子、香蕉、苹果、水果刀
I9、西红柿、排骨、鞋子、土豆、香蕉、苹果
(注意:表格的每行内容如上所述,无表头,列数不相同)
任务如下:
1.将数据集转换为布尔数据集
2.利用关联规则支持度和置信度定义挖掘出任意两个商品之间的关联规则。
3.要求支持度大于0.4,置信度大于0.7
4.返回结果用一个数据框R来表示,字段为:rule、support、confidence
其中规则为“商品名称--商品名称”命名
'''
def return_values():
##生成布尔值数据表Data
tiem=['西红柿','排骨','鸡蛋','毛巾','水果刀','苹果','茄子','香蕉','袜子','肥皂','酸奶','土豆','鞋子']
import pandas as pd
import numpy as np
data=pd.read_excel('5.xlsx',header=None)
data=data.iloc[:,1:]
D=dict()
for t in range(len(tiem)):
z=np.zeros((len(data)))
li=list()
for k in range(len(data.iloc[0,:])):
s=data.iloc[:,k]==tiem[t]
li.extend(list(s[s.values==True].index))
z[li]=1
D.setdefault(tiem[t],z)
Data=pd.DataFrame(D) #布尔值数据表
##(1)小问
#获取字段名称,并转化为列表
c=list(Data.columns)
c0=0.7#最小置信度
s0=0.4#最小支持度
list1=[]#预定义列表list1,用于存放规则
list2=[]#预定义列表list2,用于存放规则的支持度
list3=[]#预定义列表list3,用于存放规则的置信度
for k in range(len(c)):
for q in range(len(c)):
#对第c[k]个项目与第c[q]个项挖掘关联规则
#规则的前件为c[k]
#规则的后件为c[q]
#要求前件和后件不相等
if c[k]!=c[q]:
c1=Data[c[k]]
c2=Data[c[q]]
I1=c1.values==1
I2=c2.values==1
t12=np.zeros((len(c1)))
t1=np.zeros((len(c1)))
t12[I1&I2]=1
t1[I1]=1
sp=sum(t12)/len(c1)#支持度
co=sum(t12)/sum(t1)#置信度
#取置信度大于等于c0的关联规则
if co>=c0 and sp>=s0:
list1.append(c[k]+'--'+c[q])
list2.append(sp)
list3.append(co)
#定义字典,用于存放关联规则及其置信度、支持度
R={'rule':list1,'support':list2,'confidence':list3}
#将字典转化为数据框
R=pd.DataFrame(R)
return R
Educode--机器学习基础模型与算法测试闯关实验相关推荐
- python量化0基础培训_【点宽学院】3周!0基础Python量化投资!闯关式学习打卡,解锁新技能!(第4期)...
为啥我敢说这门课程能帮你从 0 实现 量化投资入门? 01 规划学习路线 首先点宽学院,作为一个深耕金融科技的数字化实践平台,我想没有谁比点宽学院更了解初学者学习量化投资的各种难题了! 所以我们打造了 ...
- python闯关训练营怎么样3.0_【新升级】3周!0基础Python量化投资!闯关式学习打卡,解锁新技能!...
2020年热度最高的编程语言是谁?Python! Python应用方向很多,包括数据分析.爬虫.开发.运维.自动化测试,不过Python+金融还有一个有趣的应用方向:量化投资. 非金融背景的同学要理解 ...
- 机器学习基本模型与算法在线实验闯关
第1关:缺失值填充 任务描述 本关任务:读取"银行贷款审批数据.xlsx"表,自变量为x1-x15,决策变量为y(1-同意贷款,0-不同意贷款),其中x1-x6为数值变量,x7-x ...
- 【机器学习基础】优化算法详解
本文来源于吴恩达老师的深度学习课程[1]和深度学习课程[2]笔记部分. 作者:黄海广[3] 备注:笔记和作业(含数据.原始作业文件).视频都在 github[4]中下载. 导语 在学习机器学习的过程中 ...
- 【机器学习基础】SVM算法在项目实践中的应用!
作者:苏丽敏,Datawhale优秀学习者,北理工计算机硕士 支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本.非线性及高维 ...
- 【机器学习基础】EM算法详解及其收敛性证明
EM算法详解 (一)单高斯模型 1.1 一维高斯分布: 1.2 多维高斯分布: (二)最大似然估计 2.1 最大似然估计的数学概念: 2.2 最大似然估计的基本步骤: 2.2.1 构造似然函数: 2. ...
- 机器学习基础模型回顾
1 导论 1.1 什么是机器学习? 机器学习的一个重要目标就是利用数学模型来理解数据,发现数据中的规律,用作数据分析和预测. 1.1.1 数据? 数据通常由一组向量组成,这组向量中的每一个向量 ...
- Educoder 机器学习之随机森林算法 第1关:Bagging
第1关:Bagging 任务描述 相关知识 什么是Bagging Bagging方法如何训练与预测 训练 预测 编程要求 测试说明 任务描述 本关任务:补充 python 代码,完成 BaggingC ...
- 机器学习(5): k-近邻算法(kNN) 小结及实验
文章目录 1 k-近邻算法简介 2 k-近邻算法原理 2.2 引例 2.2 算法流程 3 k-近邻算法优缺点 4 实验 实验1 实验2 参考资料 注:转载请标明原文出处链接:https://xiong ...
最新文章
- Freemarker和Spring开发:获取相对路劲和绝对路径的最优方式
- [PAL编程规范]SAP HANA PAL双变量几何回归预测分析Bi -Variate Geometric Regression编程规范FORECASTWITHGEOR(预测)...
- 主线科技完成A轮融资,蔚来资本、普洛斯隐山资本联合领投
- android 消息循环机制--looper handler
- php重定向和静态化,PHP实现URL静态化
- 基于python爬虫技术的应用_基于Python爬虫技术的应用
- java消息顺序执行_Apache Flink:如何并行执行但保持消息顺序?
- 安卓打开第二个activity就崩溃_零基础安卓开发起步(三)
- ZABBIX自动发现Redis端口并监控
- oracle添加路由,创建持久性(静态)路由
- Server.MapPath() 探究
- 这才是真相,“轻点,疼”被禁却另有玄机
- 计算机包括台式机和笔记本,外星人Area-51M游戏笔记本评测:比台式机更强悍的笔记本...
- AT4RE Patcher v0.6.3使用心得:
- UiPath调用超级鹰识别验证码
- 怎么建立局域网_用ZeroTier搭建属于自己的虚拟局域网(VLAN)
- GAMES101 13节 光线追踪 笔记
- 已有企业认证的微信公众号快速创建一个企业小程序
- 员工到管理者的四点转变|智测优测总结
- JasperReports初体验
热门文章
- @Scheduled出现Unexpected error occurred in scheduled task
- Windows 使用命令强制删除文件及文件夹
- 浮点数的二进制表示方法
- 使用EasyExcel进行百万数据文件导出思路
- @keyup.enter.native不生效?看看@keyup.enter.native和@keyup.enter的区别和使用
- 整理最全的“大数据”学习资源
- android 仿网易标签切换,高仿网易云音乐客户端的Home页面切换Tabhost-IT蓝豹
- 毕业季基于ssm框架的管理系统设计与实现如何写开题报告,怎么完成设计
- 段码液晶屏学习应用笔谈
- 把握出租车行驶的数据脉搏 :出租车轨迹数据给你答案!