如何使用支持向量机学习非线性数据集
支持向量机(SVM)
什么是支持向量机呢?支持向量机是监督机器学习模型 , 可对数据进行分类分析 。 实际上 , 支持向量机算法是寻找能将实例进行分离的最佳超平面的过程 。
本文插图
如果数据像上面那样是线性可分离的 , 那么我们用一个线性分类器就能将两个类分开 。 如果我们的数据是非线性可分的 , 我们应该怎么做呢?就像这样:
本文插图
正如我们所看到的 , 即使来自不同类的数据点是可分离的 , 我们也不能简单地画一条直线来进行分类 。
本文插图
那么我们如何使用支持向量机来拟合非线性机器学习数据集呢?
使用SVM进行实验
创建机器学习数据集
首先创建非线性机器学习数据集 。 Python代码如下:
# Import packages to visualize the classifer from matplotlib.colors import ListedColormap import matplotlib.pyplot as plt import warnings # Import packages to do the classifying import numpy as np from sklearn.svm import SVC # Create Dataset np.random.seed(0) X_xor = np.random.randn(200, 2) y_xor = np.logical_xor(X_xor[:, 0] > 0, X_xor[:, 1] > 0) y_xor = np.where(y_xor, 1, -1) fig = plt.figure(figsize=(10,10)) plt.scatter(X_xor[y_xor == 1, 0], X_xor[y_xor == 1, 1], c='b', marker='x', label='1') plt.scatter(X_xor[y_xor == -1, 0], X_xor[y_xor == -1, 1], c='r', marker='s', label='-1') plt.xlim([-3, 3]) plt.ylim([-3, 3]) plt.legend(loc='best') plt.tight_layout() plt.show()
本文插图
尝试使用线性支持向量机
我们首先尝试使用线性支持向量机 , Python实现如下:
# Import packages to do the classifying from mlxtend.plotting import plot_decision_regions import numpy as np from sklearn.svm import SVC # Create a SVC classifier using a linear kernel svm = SVC(kernel='linear', C=1000, random_state=0) # Train the classifier svm.fit(X_xor, y_xor) # Visualize the decision boundaries fig = plt.figure(figsize=(10,10)) plot_decision_regions(X_xor, y_xor, clf=svm) plt.legend(loc='upper left') plt.tight_layout() plt.show()C是与错误分类相关的成本 。 C值越高 , 算法对数据集的正确分离就越严格 。 对于线性分类器 , 我们使用kernel='linear' 。
本文插图
如我们所见 , 即使我们将成本设置得很高 , 但这条线也无法很好地分离红点和蓝点 。
径向基函数核
到目前为止 , 我们使用的线性分类器为:
本文插图
正如我们所看到的 , g(x)是一个线性函数 。 当g(x) >为0时 , 预测值为1 。 当g(x) <0时 , 预测值为-1 。 但是由于我们不能使用线性函数处理像上面这样的非线性数据 , 我们需要将线性函数转换成另一个函数 。
本文插图
这个分类器似乎是我们非线性数据的理想选择 。 让我们来看看Python的代码:
推荐阅读
- 传奇英雄▲荒野乱斗:最值得培养的传奇英雄,微氪玩家如何选择?
- 【】财鑫闻丨两市成交量连续2日破万亿,牛市真的来了?下一步如何擒“牛”?
- 精选泛科技|结果如何?,一加8续航遭质疑:上半年最全机型横评出炉
- 健康干货桶|重症肝病患者可否活动?如何掌握?
- 精选泛科技一加8续航遭质疑:上半年最全机型横评出炉,结果如何?
- 「孙权」孙策逝世后,弟弟孙权是如何对待20岁嫂子大桥的?说出来别不信
- 科学家■如果宇宙由奇点大爆炸而来,那么奇点又是如何来的?
- 娱娱乐道|厚嘴唇加大饼脸,网友:她是如何火的?,杨超越大量旧照曝光
- “健康北京”微信公众号|新型冠状病毒肺炎确诊病例如何分型?北京中医医院院长解答
- 央视网|上直播、转内销……外贸企业如何突围?