头歌机器学习-支持向量机

支持向量机回归模型及其应用
任务描述
本关任务:基于关卡6的数据集,构建支持向量机回归模型,输出其拟合优度,并针对测试数据AT=28.4、V=50.6、AP=1011.9、RH=80.54,预测其PE值。(备注:需对采用的核函数进行说明,比如高斯核、线性核、多项式核或者sigmoid核等)
# -*- coding: utf-8 -*-
#基于上一关的数据集,构建支持向量机回归模型(采用线性核函数),返回计算结果模型的拟合优度r,
#并针对测试数据AT=28.4、V=50.6、AP=1011.9、RH=80.54,预测其PE值。
def return_values():
    import numpy as np
    import pandas as pd
    from sklearn import svm
    data=pd.read_excel('发电场数据.xlsx')
    x=data.iloc[:,0:4].values
    y=data.iloc[:,4].values
    kernel = ['linear','poly','rbf','sigmoid']
    list1 = [] #保存针对训练数据获得的模型准确度
    list2 = [] #保存预测值
    for i in kernel:
        clf = svm.SVR(kernel=i)
        clf.fit(x, y)
        x1 = np.array([28.4,50.6,1011.9,80.54]).reshape(1,4)
        list1.append(clf.score(x,y))
        list2.append(clf.predict(x1))
    result = {'核函数':kernel,'模型准确度':list1,'预测值':list2}
    result = pd.DataFrame(result)
    r=result['模型准确度'].max()
    PE=result['预测值'].min()
    return(r,PE)


支持向量机分类模型及其应用
任务描述
本关任务:基于关卡2基础上,取数据集前600条记录作为训练数据,后90条记录作为测试数据,构建支持向量机模型,输出其模型准确率和预测准确率。
#********** Begin **********#
#在上一关基础,对经过缺失值填充、数值变量标准化后的数据集,取前600条记录作为训练数据,后90条记录作为测试数据
#构建支持向量机模型,返回计算结果模型准确率rv和预测准确率r
def return_values():
    import numpy as np
    X1=np.load('X1.npy') #经过缺失值填充、数值变量标准化后的数据集,numpy数组690*15
    Y=np.load('Y.npy')   #因变量,numpy数组,690个元素
    from sklearn.svm import SVC
    x1 = X1[:600, :]
    y1 = Y[:600]
    x2 = X1[600:, :]
    y2 = Y[600:]
    clf = SVC(kernel='rbf')
    clf.fit(x1, y1)
    rv = clf.score(x1, y1)
    r = clf.score(x2, y2)
    return(rv,r)
#********** End **********#
from sklearn import svm # 加载sklearn库来调用svm算法
from sklearn.datasets import load_iris #加载sklearn库中的数据集
from sklearn.model_selection import train_test_split #划分测试集训练集
 

基于支持向量机模型的应用案例
#1.加载数据集
################# Begin #################
datas = load_iris()
################# End #################
data_x = datas.data #定义数据
data_y = datas.target #定义标签
 
#2.划分训练集和测试集
################# Begin #################
x_train,x_test,y_train,y_test = train_test_split(data_x,data_y,test_size=0.3)
################# End #################
 
#3.调用svm函数
################# Begin #################
from sklearn import svm;
clf = svm.SVC();
################# End #################
 
clf = clf.fit(x_train,y_train) #开始训练svm模型
a = clf.predict(x_test) #开始测试
 
cnt = 0
for i in range(len(y_test)):  #评价预测的结果
    if a[i] == y_test[i]:
        cnt +=1
print(cnt/len(a))

第1关:支持向量机算法详解
什么是支持向量机?

A、
支持向量机是一种用于分类和回归的监督学习算法,目的是在特征空间中找到间隔最大的超平面。

B、
支持向量机是一种快速可靠的机器学习线性分类器,能在有限的数据量下达到很好的性能。

C、
SVM算法的原理就是找到一个分割超平面,它能把数据正确的分类,并且间距最大。


2、

支持向量机包含哪几种模型?

A、
硬间隔支持向量机

B、
软间隔支持向量机

C、
非线性支持向量机


3、

SVM是否只能处理二分类任务?


B、


4、

为什么引入核函数?

A、
SVM核函数的引用主要将非线性分类问题转换为线性分类问题


5、

SVM有哪些核函数?

A、
线性核函数

B、
多项式核函数

C、
高斯核函数
第1关:支持向量机简介
训练SVM的最小时间复杂度为O(n2),那么一下哪种数据集不适合用SVM?

A、
大数据集
支持向量是那些最接近决策平面的数据点。
A、对
SVM在下列那种情况下表现糟糕:
C、含噪声数据与重叠数据点
如果我使用数据集的全部特征并且能够达到100%的准确率,但在测试集上仅能达到70%左右,这说明:
C、
过拟合
如果使用较小的C(C趋于0),则:
A、误分类
利用sklearn构建支持向量机模型
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值