机器学习-SVM支持向量机

支持向量机是一类监督学习算法,实现二分类,其决策边界是对学习样本求解的最大边距超平面。

课程代码:

import numpy as np

my_seed = 2017

np.random.seed(my_seed)

import random

random.seed(my_seed)import matplotlib

import matplotlib.pyplot as plt

matplotlib.rcParams['font.family'] = 'SimHei'

data_set_name = "ec_data"

all_data = np.fromfile(data_set_name)/(1024 * 1024)

sequence_len = 10

X = []

Y = []

for i in range(len(all_data)-sequence_len):

X.append(all_data[i:i+sequence_len])

Y.append(all_data[i+sequence_len])

X = np.array(X)

Y = np.array(Y)

from sklearn.model_selection import train_test_split

默认shufft

X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.05)

from sklearn import svm

SVR = svm.SVR()

SVR.fit(X_train, Y_train)

Y_predict = SVR.predict(X_test)

预测的值

Y_test_predict = Y_predict

真实值

Y_test_real = Y_test

fig = plt.figure(figsize=(15, 6))

fig.suptitle(data_set_name)

x = np.arange(100, 150, 1)

plt.subplots_adjust(wspace =0, hspace =0.5)#调整子图间距

plt.subplot(2,1,1)

plt.plot(x,Y_test_predict[100:150],label="预测值")

plt.plot(x,Y_test_real[100:150],label="真实值")

plt.ylabel('流量大小(Mb)')

plt.legend(loc=1,ncol=1)

plt.subplot(2,1,2)

plt.ylabel('流量大小(Mb)')

plt.plot(Y_test_predict,label="预测值")

plt.plot(Y_test_real,label="真实值")

#指定图例位置,1右上角,2左上角,3右下角,4左下角,0自动适应图像

plt.legend(loc=0,ncol=1)

plt.legend(loc=1,ncol=1)

plt.savefig(data_set_name+"_svm_predict.png",dpi=400)

相关推荐
Q741_14741 分钟前
C++ 前缀和 高频笔试考点 实用技巧 牛客 DP34 [模板] 前缀和 题解 每日一题
开发语言·c++·算法·前缀和·牛客网
却道天凉_好个秋1 小时前
计算机视觉(十二):人工智能、机器学习与深度学习
人工智能·深度学习·机器学习·计算机视觉
RTC老炮2 小时前
webrtc弱网-LossBasedBandwidthEstimation类源码分析与算法原理
网络·算法·webrtc
虚拟现实旅人2 小时前
【机器学习】通过tensorflow搭建神经网络进行气温预测
神经网络·机器学习
豆浩宇2 小时前
Conda环境隔离和PyCharm配置,完美同时运行PaddlePaddle和PyTorch
人工智能·pytorch·算法·计算机视觉·pycharm·conda·paddlepaddle
一只鱼^_2 小时前
牛客周赛 Round 108
数据结构·c++·算法·动态规划·图论·广度优先·推荐算法
破烂儿3 小时前
基于机器学习的缓存准入策略研究
人工智能·机器学习·缓存
小刘的AI小站3 小时前
leetcode hot100 二叉搜索树
算法·leetcode
自信的小螺丝钉3 小时前
Leetcode 876. 链表的中间结点 快慢指针
算法·leetcode·链表·指针
红豆怪怪3 小时前
[LeetCode 热题 100] 32. 最长有效括号
数据结构·python·算法·leetcode·动态规划·代理模式