机器学习基本模型与算法在线实验闯关
·
第3关:支持向量机分类模型及其应用
任务描述
本关任务:基于关卡2基础上,取数据集前600条记录作为训练数据,后90条记录作为测试数据,构建支持向量机模型,输出其模型准确率和预测准确率。
相关知识
为了完成本关任务,你需要掌握:1.获取数据和数据处理。2.训练样本与测试样本划分。3、支持向量机分类模型构建。
训练样本与测试样本划分
训练用的特征数据用x1表示,预测变量用y1表示,测试样本则分别记为x2和y2。
x1 = x.iloc[:600,:]y1 = data.iloc[:600,15]x2 = x.iloc[600:,:]y2 = data.iloc[600:,15]
输出:
支持向量机分类模型构建
支持向量机分类模型的构建具体步骤如下:
(1)导入支持向量机模块svm。from sklearn import svm(2)利用svm创建支持向量机类`svm`。clf = svm.SVC(kernel='rbf')其中核函数可以选择线性核、多项式核、高斯核、sig核,分别用`linear、poly、rbf、sigmoid`表示,默认情况下选择高斯核。(3)调用svm中的`fit()`方法进行训练。clf.fit(x, y)(4)调用svm中的`score()`方法,考查训练效果。rv=clf.score(x, y); # 模型准确率(针对训练数据)(5)调用svm中的`predict()`方法,对测试样本进行预测,获得预测结果。R=clf.predict(x1)
示例如下:
from sklearn import svmclf = svm.SVC(kernel='rbf')clf.fit(x, y)rv=clf.score(x, y);R=clf.predict(x1)Z=R-y1Rs=len(Z[Z==0])/len(Z)print("模型准确率: " + str(rv))print("预测准确率:" + str(Rs))
输出:模型准确率: 0.915 预测准确率:0.9111111111111111
编程要求
根据提示,在右侧编辑器补充代码,构建支持向量机模型并输出模型准确率rv和预测准确率Rs。
测试说明
在定义的函数内进行编码,注意格式,平台会对你编写的代码进行测试。 开始你的任务吧,祝你成功!
任务代码:
#********** Begin **********#
#在上一关基础,对经过缺失值填充、数值变量标准化后的数据集,取前600条记录作为训练数据,后90条记录作为测试数据
#构建支持向量机模型,返回计算结果模型准确率rv和预测准确率r
def return_values():
import numpy as np
from sklearn import svm
X1=np.load('X1.npy') #经过缺失值填充、数值变量标准化后的数据集,numpy数组690*15
Y=np.load('Y.npy') #因变量,numpy数组,690个元素
x1 = X1[:600,:]
y1 = Y[:600]
x2 = X1[600:,:]
y2 = Y[600:]
clf = svm.SVC(kernel='rbf')
clf.fit(x1, y1)
rv=clf.score(x1, y1);
R=clf.predict(x2)
Z=R-y2
r=len(Z[Z==0])/len(Z)
#print("模型准确率: " + str(rv))
#print("预测准确率:" + str(r))
return(rv,r)
#********** End **********#
print的注释不要删掉否则通过不了,这是print的结果
模型准确率: 0.8833333333333333 预测准确率:0.8888888888888888
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)