ML之SVM:随机产生100个点,建立SVM模型,找出超平面方程

简介: ML之SVM:随机产生100个点,建立SVM模型,找出超平面方程

实现结果

image.png


代码实例

import numpy as np

import pylab as pl

from sklearn import svm

X = np.r_[np.random.randn(100, 2) - [2, 2], np.random.randn(100, 2) + [2, 2]]  

Y = [0]*100 +[1]*100  

clf = svm.SVC(kernel='linear')

clf.fit(X, Y)

w = clf.coef_[0]  

a = -w[0]/w[1]          

xx = np.linspace(-5, 5)  

yy = a*xx - (clf.intercept_[0])/w[1]  

b = clf.support_vectors_[0]

yy_down = a*xx + (b[1] - a*b[0])

b = clf.support_vectors_[-1]

yy_up = a*xx + (b[1] - a*b[0])

print ("w: ", w)

print ("a: ", a)

# print "xx: ", xx

# print "yy: ", yy

print ("support_vectors_: ", clf.support_vectors_)

print ("clf.coef_: ", clf.coef_)

# plot the line, the points, and the nearest vectors to the plane

pl.plot(xx, yy, 'k-')  

pl.plot(xx, yy_down, 'k--')  

pl.plot(xx, yy_up, 'k--')

pl.scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1],

         s=80, facecolors='none')

pl.scatter(X[:, 0], X[:, 1], c=Y, cmap=pl.cm.Paired)

pl.axis('tight')

pl.show()  


相关文章
|
2月前
|
机器学习/深度学习 算法
【机器学习】SVM面试题:简单介绍一下SVM?支持向量机SVM、逻辑回归LR、决策树DT的直观对比和理论对比,该如何选择?SVM为什么采用间隔最大化?为什么要将求解SVM的原始问题转换为其对偶问题?
支持向量机(SVM)的介绍,包括其基本概念、与逻辑回归(LR)和决策树(DT)的直观和理论对比,如何选择这些算法,SVM为何采用间隔最大化,求解SVM时为何转换为对偶问题,核函数的引入原因,以及SVM对缺失数据的敏感性。
58 3
|
2月前
HanLP — HMM隐马尔可夫模型 -- 训练--归一化,计算概率
HanLP — HMM隐马尔可夫模型 -- 训练--归一化,计算概率
42 0
|
5月前
|
数据可视化
R语言多项式回归拟合非线性关系
R语言多项式回归拟合非线性关系
R语言多项式回归拟合非线性关系
|
5月前
|
机器学习/深度学习 算法 数据可视化
样条曲线、决策树、Adaboost、梯度提升(GBM)算法进行回归、分类和动态可视化
样条曲线、决策树、Adaboost、梯度提升(GBM)算法进行回归、分类和动态可视化
|
5月前
|
人工智能
实现广义相加模型GAM和普通最小二乘(OLS)回归
实现广义相加模型GAM和普通最小二乘(OLS)回归
|
5月前
|
机器学习/深度学习 算法 数据可视化
R语言用标准最小二乘OLS,广义相加模型GAM ,样条函数进行逻辑回归LOGISTIC分类
R语言用标准最小二乘OLS,广义相加模型GAM ,样条函数进行逻辑回归LOGISTIC分类
|
5月前
|
人工智能
R语言中实现广义相加模型GAM和普通最小二乘(OLS)回归
R语言中实现广义相加模型GAM和普通最小二乘(OLS)回归
|
5月前
|
机器学习/深度学习 算法 数据可视化
R语言样条曲线、决策树、Adaboost、梯度提升(GBM)算法进行回归、分类和动态可视化
R语言样条曲线、决策树、Adaboost、梯度提升(GBM)算法进行回归、分类和动态可视化
|
10月前
差分方程模型:蛛网模型
差分方程模型:蛛网模型
168 0
|
机器学习/深度学习 算法 索引
逻辑回归与多项式特征:解密分类问题的强大工具
逻辑回归与多项式特征:解密分类问题的强大工具
下一篇
无影云桌面