• PSO-LS-SVM代码
• import numpy as np import matplotlib.pyplot as plt def gaussian(x,l): gama=1.0 return np.exp(-gama*(x-l)**2) x=np.arange(-4,5,1) print(x) y=np.array((x>...x_new=np.empty((len(x),2)...


import numpy as np
import matplotlib.pyplot as plt

def gaussian(x,l):
gama=1.0
return np.exp(-gama*(x-l)**2)

x=np.arange(-4,5,1)
print(x)

y=np.array((x>=-2)&(x<=2),dtype="int")
print(y)

l1,l2=-1,1
x_new=np.empty((len(x),2))
for i,data in enumerate(x):
x_new[i,0]=gaussian(data,l1)
x_new[i,1] = gaussian(data, l2)
print(x_new)
plt.scatter(x[y==0],[0]*len(x[y==0]),color="red")
plt.scatter(x[y==1],[0]*len(x[y==1]),color="yellow")
plt.show()
plt.scatter(x_new[y==0,0],x_new[y==0,1],color="red")
plt.scatter(x_new[y==1,0],x_new[y==1,1],color="yellow")
plt.show()


展开全文
• sklearn实战：SVM(线性核函数，多项式核函数，高斯核函数比较)发布时间：2018-06-08 14:25,浏览次数：1383, 标签：sklearnSVM%matplotlib inline import matplotlib.pyplot as plt import numpy as np defplot_...

sklearn实战：SVM(线性核函数，多项式核函数，高斯核函数比较)
发布时间：2018-06-08 14:25,
浏览次数：1383
, 标签：
sklearn
SVM
%matplotlib inline import matplotlib.pyplot as plt import numpy as np def
plot_hyperplane(clf, X, y, h=0.02, draw_sv=True, title='hyperplan'): # create a
mesh to plot in x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1 y_min,
y_max = X[:,1].min() - 1, X[:, 1].max() + 1 xx, yy =
np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
plt.title(title) plt.xlim(xx.min(), xx.max()) plt.ylim(yy.min(), yy.max())
plt.xticks(()) plt.yticks(()) Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])#
Put the result into a color plot Z = Z.reshape(xx.shape) plt.contourf(xx, yy,
Z, cmap='hot', alpha=0.5) markers = ['o', 's', '^'] colors = ['b', 'r', 'c']
labels = np.unique(y)for label in labels: plt.scatter(X[y==label][:, 0],
X[y==label][:,1], c=colors[label], marker=markers[label]) if draw_sv: sv =
clf.support_vectors_ plt.scatter(sv[:,0], sv[:, 1], c='y', marker='x') from
sklearnimport svm from sklearn.datasets import make_blobs X, y =
make_blobs(n_samples=100, centers=2, random_state=0, cluster_std=0.3) clf =
svm.SVC(C=1.0, kernel='linear') clf.fit(X, y) plt.figure(figsize=(12, 4), dpi=
144) plot_hyperplane(clf, X, y, h=0.01, title='Maximum Margin Hyperplan')
from sklearn import svm from sklearn.datasets import make_blobs X, y =
make_blobs(n_samples=100, centers=3, random_state=0, cluster_std=0.8)
clf_linear = svm.SVC(C=1.0, kernel='linear') clf_poly = svm.SVC(C=1.0, kernel=
'poly', degree=3) clf_rbf = svm.SVC(C=1.0, kernel='rbf', gamma=0.5) clf_rbf2 =
svm.SVC(C=1.0, kernel='rbf', gamma=0.1) plt.figure(figsize=(10, 10), dpi=144)
clfs = [clf_linear, clf_poly, clf_rbf, clf_rbf2] titles = ['Linear Kernel',
'Polynomial Kernel with Degree=3', 'Gaussian Kernel with $\gamma=0.5$',
'Gaussian Kernel with $\gamma=0.1$'] for clf, i in zip(clfs, range(len(clfs))):
clf.fit(X, y) plt.subplot(2, 2, i+1) plot_hyperplane(clf, X, y, title=titles[i])

展开全文
• （shur定理）：设A,B为两个（半）正定的Hermite矩阵，则他们的点积C=A*B也为（半）正定的Herimite矩阵 根据上面的定理，可以证明为正定核，其中p为大于等于1的正整数。
（shur定理）：设A,B为两个（半）正定的Hermite矩阵，则他们的点积C=A*B也为（半）正定的Herimite矩阵
证明：
$C=A\cdot B=(a_{ij}b_{ij})_{ij}\\ A=U^{H}U\\ x^TCx=\sum_{i=1}^n\sum_{j=1}^nc_{ij}x_ix_j=\sum_{i=1}^n\sum_{j=1}^na_{ij}b_{ij}x_ix_j\\=\sum_{i=1}^n\sum_{j=1}^n\sum_{k=1}^nu_{ik}u_{kj}b_{ij}x_ix_j\\=\sum_{k=1}^n(\sum_{i=1}^n\sum_{j=1}^nb_{ij}(u_{ik}x_i)(u_{kj}x_j))\geq 0$
根据上面的定理，可以证明$K(x,z)=(x\cdot z)^p$为正定核，其中p为大于等于1的正整数。
展开全文
• # # 多项式核函数 degree表示多项式的最高阶 # clf = svm.SVC(C=1.0, kernel='poly', degree=2) # clf.fit(X_train, y_train) # train_score = clf.score(X_train, y_train) # test_score = clf.score(X_test, y_...
from sklearn import svm
import numpy as np
import time
from sklearn.model_selection import ShuffleSplit
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.model_selection import GridSearchCV
from matplotlib import pyplot as plt
from ROC import plot_learning_curve

X = cancer.data
y = cancer.target

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

# C表示错误可接受的范围，kernel 表示所选择的核函数，gamma时对应选择高斯核的参数
# clf_rbf = svm.SVC(C=1.0, kernel='rbf', gamma=0.1)
# clf_rbf.fit(X_train, y_train)
#
# train_score = clf_rbf.score(X_train, y_train)
# test_score = clf_rbf.score(X_test, y_test)
#
# print("train score:{0}; test score:{1}".format(train_score, test_score))

# # 计算出最佳的gamma值
# gammas = np.linspace(0, 0.0003, 30)
# param_grid = {'gamma': gammas}
# clf = GridSearchCV(svm.SVC(), param_grid, cv=5)
# clf.fit(X, y)
#
# print("best param: {0}\nbest score: {1}".format(clf.best_params_, clf.best_score_))
#
# cv = ShuffleSplit(n_splits=10, test_size=0.2, random_state=0)
# title = 'Learning Curves for Gaussian Kernel'
#
#
# plt.figure(figsize=(10, 4), dpi=144)
# plot_learning_curve(svm.SVC(C=1.0, kernel='rbf', gamma=0.01), title, X, y, ylim=(0.5, 1.01), cv=cv)
# plt.show()

# # 多项式核函数 degree表示多项式的最高阶
# clf = svm.SVC(C=1.0, kernel='poly', degree=2)
# clf.fit(X_train, y_train)
# train_score = clf.score(X_train, y_train)
# test_score = clf.score(X_test, y_test)
# print("train score:{0}; test score:{1}".format(train_score, test_score))

cv = ShuffleSplit(n_splits=5, test_size=0.2, random_state=0)
title = 'Learning Curves with degree={0}'
degree = [1, 2, 3]

plt.figure(figsize=(12, 4), dpi=144)
for i in range(len(degree)):
plt.subplot(1, len(degree), i+1)
plot_learning_curve(svm.SVC(C=1, kernel='poly', degree=degree[i]), title.format(degree[i]), X, y, ylim=(0.8, 1.01),
cv=cv, n_jobs=4)
plt.show()
展开全文
• 针对GF空间的多项式核函数,在范数限定条件下利用多核学习方法优化多项式权系数,实现多项式核函数的优化。实验结果表明,算法优化得到的多项式核函数其分类性能优于常用的单核函数,与多核方法相当,并在分类中取得良好...
• 定义 设x=(x1,x2,…,xn)T∈Rnx=(x_1,x_2,\dots,x_n)^T \in R^nx=(x1​,x2​,…,xn​)T∈Rn,则称乘积xj1xj2…xjdx_{j_1}x_{j_2}\dots x_{j_d}xj1​​xj2​​…xjd​​为xxx的一个ddd阶多项式，其中j1,j2,…,jd∈{1,2,...
• C=1e3,degree=2) #poly多项式核函数 y_rbf=svr_rbf.fit(X, y).predict(X) y_lin=svr_lin.fit(X, y).predict(X) y_poly=svr_poly.fit(X,y).predict(X) plt.scatter(X,y,label="原始数据") #原始数据 plt.scatter(X,y_...
• 核函数是我们处理数据时使用的一种方式。对于给的一些特征数据我们通过核函数的方式来对其进行处理。我们经常在SVM中提到核函数，就是因为通过核函数来将原本的数据进行各种方式的组合计算，从而从低维数据到高维...
• 在一个二维空间中，具有特征空间X和特征空间Y，当其中一个点（x, y）在这个二维平面中，如果想把它映射高维空间中，那么就需要用到核函数。 关于核函数的定义是：设XXX是输入空间，YYY是特征空间。如果存在一个从XXX...
• 几篇关于核函数的论文，希望对大家有帮助，有关于分类的，回归的，多项式核函数SVM快速分类算法，核函数的概念_性质及其应用，关于核函数选取的方法，关于统计学习理论与支持向量机，
• 将2D高斯核函数根据非正交方向进行分解，得到一维的x轴和其他方向的高斯函数，通过统计学方法，将分解的高斯函数与卷积滤波器或者迭代滤波器结合进行边缘检测。
• 该代码包括了SVM的多核核函数的分类实现和可视化展示。
• 本篇主要介绍sklearn库的svm的分类和回归参数，其中重点介绍四大核函数的参数。 之前在未调参的情况下将svm和决策树、贝叶斯进行了分类对比，发现训练器分数巨低，且训练过程时间是真的长，长到怀疑人生。所以想要SV...
• 一、基础理解 数据：线性数据、非线性数据；...多项式思维：扩充原本的数据，制造新的多项式特征；（对每一个样本添加多项式特征） 步骤： PolynomialFeatures(degree = degree)：扩充原始数据，生成多项...
• 有没有人大佬知道lssvm工具箱怎么自己换核函数啊，想把高斯的换成多项式核函数
• 俞梅洪 【作者单位】闽南师范大学计算机科学与工程系 ......SVM 分类核函数及参数选择比较 奉国和 【摘要】支持向量机(SVM)被证实在分类领域性能良好,但其分类性能受到 核函数及参数影响。讨论核函数及参数对 SVM ...
• 看起来，除了Sigmoid核函数，其他核函数效果都还不错。但其实rbf和poly都有自己的弊端，我们使用乳腺癌数据集作为例子来展示一下： from sklearn.datasets import load_breast_cancer from sklearn.svm import SVC ...
• 下图所示的例子便是把低维线性不可分的数据通过高斯核函数映射到了高维空间： 多项式核 多项式核函数可以实现将低维的输入空间映射到高纬的特征空间，但是多项式核函数的参数多，当多项式的阶数比较高的时候，核矩阵...
• 1.核函数本质 核函数其实准确来说就是一个内积(低维和高维的内积相等)，相似度，和那个映射函数没有任何关系（因为有时候你根本找不到那个映射函数），即使找到了映射函数也没啥意义。比如说你想把二维映射到三维，...
• ## 机器学习笔记之核函数

千次阅读 多人点赞 2018-06-18 15:43:45
多项式核函数 高斯核函数(RBF) sigmoid核函数 核函数的选取原则 基本概念 核函数定义： 核函数：是映射关系的内积，映射函数本身仅仅是一种映射关系，并没有增加维度的特性，不过可以利用核函数的特性...
• ## SVM核函数

千次阅读 2018-02-21 18:46:37
感想今天做了几道SVM的题目，发现自己还做错了，想当年我还是...problem下列不是SVM核函数的是：A 多项式核函数B logistic核函数C 径向基核函数D Sigmoid核函数正确答案是：Banalysis支持向量机是建立在统计学习理...
• ## SVM核函数总结

千次阅读 2016-04-17 16:27:41
SVM引入核函数有两个方面的原因，一是为了更好的拟合数据，另一个重要的原因是实现数据的线性可分。 由于一些数据集在低维空间是线性不可分的，SVM通过引入核函数实现了把特征集从低维空间到高维空间的映射。这样在...

...