专栏首页机器学习与统计学100天搞定机器学习|Day13-14 SVM的实现

100天搞定机器学习|Day13-14 SVM的实现

前情回顾

机器学习100天|Day1数据预处理

100天搞定机器学习|Day2简单线性回归分析

100天搞定机器学习|Day3多元线性回归

100天搞定机器学习|Day4-6 逻辑回归

100天搞定机器学习|Day7 K-NN

100天搞定机器学习|Day8 逻辑回归的数学原理

100天搞定机器学习|Day9-12 支持向量机

100天搞定机器学习|Day11 实现KNN

昨天我们学习了支持向量机基本概念,重申数学推导原理的重要性并向大家介绍了一篇非常不错的文章。今天,我们使用Scikit-Learn中的SVC分类器实现SVM。我们将在day16使用kernel-trick实现SVM。

导入库

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

导入数据

数据集依然是Social_Network_Ads,下载链接:

https://pan.baidu.com/s/1cPBt2DAF2NraOMhbk5-_pQ

提取码:vl2g

dataset = pd.read_csv('Social_Network_Ads.csv')
X = dataset.iloc[:, [2, 3]].values
y = dataset.iloc[:, 4].values

拆分数据集为训练集合和测试集合

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0)

特征量化

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.fit_transform(X_test)

适配SVM到训练集合

from sklearn.svm import SVC
classifier = SVC(kernel = 'linear', random_state = 0)
classifier.fit(X_train, y_train)

预测测试集合结果

y_pred = classifier.predict(X_test)

创建混淆矩阵

from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, y_pred)

训练集合结果可视化

from matplotlib.colors import ListedColormap
X_set, y_set = X_train, y_train
X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() - 1, stop = X_set[:, 0].max() + 1, step = 0.01),
                     np.arange(start = X_set[:, 1].min() - 1, stop = X_set[:, 1].max() + 1, step = 0.01))
plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(), X2.ravel()]).T).reshape(X1.shape),
             alpha = 0.75, cmap = ListedColormap(('red', 'green')))
plt.xlim(X1.min(), X1.max())
plt.ylim(X2.min(), X2.max())
for i, j in enumerate(np.unique(y_set)):
    plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1],
                c = ListedColormap(('red', 'green'))(i), label = j)
plt.title('SVM (Training set)')
plt.xlabel('Age')
plt.ylabel('Estimated Salary')
plt.legend()
plt.show()

测试集合结果可视化

from matplotlib.colors import ListedColormap
X_set, y_set = X_test, y_test
X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() - 1, stop = X_set[:, 0].max() + 1, step = 0.01),
                     np.arange(start = X_set[:, 1].min() - 1, stop = X_set[:, 1].max() + 1, step = 0.01))
plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(), X2.ravel()]).T).reshape(X1.shape),
             alpha = 0.75, cmap = ListedColormap(('red', 'green')))
plt.xlim(X1.min(), X1.max())
plt.ylim(X2.min(), X2.max())
for i, j in enumerate(np.unique(y_set)):
    plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1],
                c = ListedColormap(('red', 'green'))(i), label = j)
plt.title('SVM (Test set)')
plt.xlabel('Age')
plt.ylabel('Estimated Salary')
plt.legend()
plt.show()

本文分享自微信公众号 - 机器学习与统计学(tjxj666)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 用机器学习加速你的网站

    我一生中大约73%的时间都在思考网络性能:如何在慢速手机上能播放60FPS的画面,用完美的顺序加载资源,通过离线缓存能做的一切。等等等等。

    疯狂的技术宅
  • 深度学习笔记5-卷积神经网络的基本内容

    一张图片在计算机中是以三个独立的矩阵存储的,对应于下图中的红色,绿色和蓝色通道。三个矩阵与图像大小相同,例如,下图中猫的图像的分辨率是64×64,三个矩阵(RG...

    caoqi95
  • AI系统实现了自动编程,程序员要被取代了吗?

    随着人工智能技术的快速进展,人工智能时代的序幕已经揭起,目前深度学习在图像处理方面的能力已经接近于人,甚至在某些方面已经超过人的识别能力。在语音识别、自然语言处...

    疯狂的技术宅
  • 基于 Keras 和 dlib 的人脸识别实践

    这次的实践是基于很小的数据集,搭建的系统也比较粗糙,只是个toy implementation。主要用来练手和熟悉流程的。

    caoqi95
  • DeepSleepNet - 基于原始单通道 EEG 的自动睡眠阶段评分模型

    这篇论文是 2017 年在 IEEE 神经系统与康复工程学报上发布的一篇关于睡眠分阶的论文。这篇论文的主要贡献有:

    caoqi95
  • JavaScript中的10个机器学习示例

    随着时间的推移,机器学习库变得更快也更易于使用,其发展速度丝毫没有放缓的迹象。虽然一直以来 Python 都是机器学习的重要语言,但目前的神经网络可以在任何语言...

    疯狂的技术宅
  • 数据预处理-对类别数据的处理方法

    参数: -indices: A Tensor of indices. -depth: A scalar defining the depth of the ...

    caoqi95
  • Coursera NLP 课程 - 第一周 - 01 - NLP 课程介绍

    「学习内容总结自 coursera 上的 Natural Language Processing 课程」

    caoqi95
  • 使用 AI 为 Web 网页增加无障碍功能

    根据世界健康组织的统计,全球约有 2.85 亿位视力障碍人士,仅美国就有 810 万网民患视力障碍。

    疯狂的技术宅
  • KNN (K 邻近)分类算法

    最近看到一个很火的 100-Days-Of-ML-Code 的活动,在 Github 上看了下每日的学习内容,发现是个很好的查漏补缺的列表。这个学习列表里面包含...

    caoqi95

扫码关注云+社区

领取腾讯云代金券