Evernote Export

支持向量机(Support Vector Machine)

不适定问题不止一个决策边界

要找一个决策边界,不仅能将训练集很好的划分,而且提升模型的泛化能力
支持向量机直接将算法放在运行的内部,在不适定的问题中,使用svm去建模是好的
svm是统计学习中非常重要的方法
svm尝试寻找一个最优的决策边界,距离两个类别的最近的样本最远,距离决策边界最近的点称为支撑向量
svm算法要做的就是最大化margin,也就是要找到最大的d

margin=2d

解析几何,点到直线的距离

(x,y)到Ax+By+C=0的距离A2+B2∣Ax+By+C∣​
扩展到n维空间θTxb​=0-->wTx+b=0-->∣∣w∣∣wT+b​
∣∣w∣∣=w12​+w22​+...+wn2​

∣∣w∣∣wTxi+b​≥d 其中∀yi=1
∣∣w∣∣wTxi+b​≤−d 其中∀yi=−1
∣∣w∣∣dwTxi+b​≥1 其中∀yi=1
∣∣w∣∣dwTxi+b​≤−1 其中∀yi=−1
wdT​xi+bd​≥1其中∀yi=1
wdT​xi+bd​≤−1其中∀yi=−1

yi(wTxi+b)≥1
对于任意支撑向量x有 max∣∣w∣∣∣wTx+b∣​-->max∣∣w∣∣1​-->min21​∣∣w∣∣2

Soft Margin和SVM的正则化

Soft Margin SVM yi(wTxi+b)≥1−ζ
ζi​≥0
min21​∣∣w∣∣2+C⋅Σi=1m​ζi​
C为超参数,平衡两部分的重要程度

使用SVM需要对数据进行标准化处理
对于SVM上,数据尺度不同,需要对数据进行标准化处理

什么是核函数

svm的本质:其实就是求解最优化问题,求解最优化过程中,需要变形为数学中最好解决的问题

核函数思想:K(xi,xk)=xi,xj
K(x,y)=(x⋅y+1)2

K(x,y)=(i=1∑n​x⋅y+1)2=i=1∑n​(xi2​)(yi2​)+i=2∑n​j=1∑i−1​(2​xi​xj​)(2​yi​yj​)+i=1∑n​(2​xi​)(2​yi​)+1

核函数会降低原算法的复杂度

K(x,y)=(x⋅y+c)d

d就是函数里的degree

高斯核函数

K(x,y)表示x和y的点乘

K(x,y)=e−γ∣∣x−y∣∣2

正态分布就是高斯函数 g(x)=σ2π
1​e−21​(σx−μ​)2


RBF核 Radial Basis Function Kernel
将每一个样本点映射到一个无穷维的特征空间
多项式特征依靠升维是的原本线性不可分的数据线性可分

import numpy as np
import matplotlib.pyplot as plt from sklearn import datasets
iris = datasets.load_iris()
X = iris.data
y = iris.target
X = X[y < 2, :2]
y = y[y < 2] plt.scatter(X[y == 0, 0], X[y == 0, 1], color='red')
plt.scatter(X[y == 1, 0], X[y == 1, 1], color='blue')
plt.show()

from sklearn.preprocessing import StandardScaler
standardScaler = StandardScaler()
standardScaler.fit(X)
X_standard = standardScaler.transform(X)
from sklearn.svm import LinearSVC
#SVC使用向量做分类
svc = LinearSVC(C=1e9)
svc.fit(X_standard, y) def plot_decision_boundary(model, axis):
x0,x1 = np.meshgrid(
np.linspace(axis[0],axis[1],int((axis[1]-axis[0])*100)).reshape(-1,1),
np.linspace(axis[2],axis[3],int((axis[3]-axis[2])*100)).reshape(-1,1),
)
X_new = np.c_[x0.ravel(),x1.ravel()]
y_predict = model.predict(X_new)
zz = y_predict.reshape(x0.shape)
from matplotlib.colors import ListedColormap
custom_camp = ListedColormap(['#EF9A9A','#FFF59D','#90CAF9'])
plt.contourf(x0, x1, zz, linewith=5, camp=custom_camp)
w = model.coef_[0]
b = model.intercept_[0]
plot_x = np.linspace(axis[0], axis[1], 200)
up_y = -w[0]/w[1]*plot_x-b/w[1]+1/w[1]
down_y = -w[0]/w[1]*plot_x-b/w[1]-1/w[1]
up_index = (up_y>=axis[2])&(up_y<=axis[3])
down_index = (down_y>=axis[2])&(down_y<=axis[3])
plt.plot(plot_x[up_index],up_y[up_index],color='black')
plt.plot(plot_x[down_index],down_y[down_index],col plot_decision_boundary(svc, axis=[-3,3,-3,3])
plt.scatter(X_standard[y==0,0],X_standard[y==0,1])
plt.scatter(X_standard[y==1,0],X_standard[y==1,1])
plt.show()

               

svc2 = LinearSVC(C=0.01)
svc2.fit(X_standard, y)
plot_decision_boundary(svc2, axis=[-3,3,-3,3])
plt.scatter(X_standard[y==0,0],X_standard[y==0,1])
plt.scatter(X_standard[y==1,0],X_standard[y==1,1])
plt.show()


             

#多项式处理非线性问题
import numpy as npimport matplotlib.pyplot as plt
from sklearn import datasets
X, y = datasets.make_moons()
plt.scatter(X[y==0,0],X[y==0,1])plt.scatter(X[y==1,0],X[y==1,1])plt.show()

#构建数据集
X,y = datasets.make_moons(noise=0.15, random_state=666)
plt.scatter(X[y==0,0],X[y==0,1])plt.scatter(X[y==1,0],X[y==1,1])plt.show()

from sklearn.preprocessing import PolynomialFeatures, StandardScaler
from sklearn.svm import LinearSVC
from sklearn.pipeline import Pipeline
def PolynomialSVC(degree,C=1.0):
return Pipeline([
("poly", PolynomialFeatures(degree=degree)),
("std_scaler", StandardScaler()),
("linearSVC", LinearSVC(C=C)),
])
poly_svc = PolynomialSVC(degree=3)
poly_svc.fit(X,y) def plot_decision_boundary(model, axis):
x0,x1 = np.meshgrid(
np.linspace(axis[0],axis[1],int((axis[1]-axis[0])*100)).reshape(-1,1),
np.linspace(axis[2],axis[3],int((axis[3]-axis[2])*100)).reshape(-1,1),
)
X_new = np.c_[x0.ravel(),x1.ravel()]
y_predict = model.predict(X_new)
zz = y_predict.reshape(x0.shape)
from matplotlib.colors import ListedColormap
custom_camp = ListedColormap(['#EF9A9A','#FFF59D','#90CAF9'])
plt.contourf(x0, x1, zz, linewith=5, camp=custom_camp)
plot_decision_boundary(poly_svc,axis=[-1.5,2.5,-1.0,1.5])
plt.scatter(X[y==0,0], X[y==0,1])
plt.scatter(X[y==1,0], X[y==1,1])
plt.show()

#多项式核函数
from sklearn.svm import SVC
def PolynomialKernelSVC(degree, C=1.0):
return Pipeline([
("std_scaler", StandardScaler()),
("kernelSVC", SVC(kernel='poly',degree=degree,C=C)),
])
poly_kernel_svc = PolynomialKernelSVC(degree=3)
poly_kernel_svc.fit(X,y)
plot_decision_boundary(poly_kernel_svc,axis=[-1.5,2.5,-1.0,1.5])
plt.scatter(X[y==0,0], X[y==0,1])
plt.scatter(X[y==1,0], X[y==1,1])
plt.show()

scikit-learn的高斯核函数

K(x,y)=e^{-\gamma||x-y||}^2

gamma越大,高斯分布越窄
gamma越小,高斯分布越宽

import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
X, y = datasets.make_moons(noise=0.15, random_state=666)
plt.scatter(X[y == 0, 0], X[y == 0, 1])plt.scatter(X[y == 1, 0], X[y == 1, 1])
plt.show()

from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
from sklearn.pipeline import Pipeline
def RBFkernelSVC(gamma=1.0):
return Pipeline([
("std_scaler", StandardScaler()),
("svc", SVC(kernel='rbf', gamma=gamma)),
])
svc = RBFkernelSVC(gamma=1.0)
svc.fit(X, y)
def plot_decision_boundary(model, axis):
x0,x1 = np.meshgrid(
np.linspace(axis[0],axis[1],int((axis[1]-axis[0])*100)).reshape(-1,1),
np.linspace(axis[2],axis[3],int((axis[3]-axis[2])*100)).reshape(-1,1),
)
X_new = np.c_[x0.ravel(),x1.ravel()]
y_predict = model.predict(X_new)
zz = y_predict.reshape(x0.shape)
from matplotlib.colors import ListedColormap
custom_camp = ListedColormap(['#EF9A9A','#FFF59D','#90CAF9'])
plt.contourf(x0, x1, zz, linewith=5,camp=custom_camp)
plot_decision_boundary(svc, axis=[-1.5, 2.5, -1.0, 1.5])
plt.scatter(X[y == 0, 0], X[y == 0, 1])
plt.scatter(X[y == 1, 0], X[y == 1, 1])
plt.show()

svc_gamma100 = RBFkernelSVC(gamma=100)
svc_gamma100.fit(X,y)
plot_decision_boundary(svc_gamma100, axis=[-1.5, 2.5, -1.0, 1.5])
plt.scatter(X[y == 0, 0], X[y == 0, 1])
plt.scatter(X[y == 1, 0], X[y == 1, 1])
plt.show()
#决策边界的这一类,其中在周围都形成了中型的图案

svc_gamma10 = RBFkernelSVC(gamma=10)
svc_gamma10.fit(X,y)
plot_decision_boundary(svc_gamma10, axis=[-1.5, 2.5, -1.0, 1.5])
plt.scatter(X[y == 0, 0], X[y == 0, 1])
plt.scatter(X[y == 1, 0], X[y == 1, 1])
plt.show()

svc_gamma03 = RBFkernelSVC(gamma=0.3)
svc_gamma03.fit(X,y)
plot_decision_boundary(svc_gamma03, axis=[-1.5, 2.5, -1.0, 1.5])
plt.scatter(X[y == 0, 0], X[y == 0, 1])
plt.scatter(X[y == 1, 0], X[y == 1, 1])
plt.show()

SVM思路解决回归问题

使用margin的方式,类似于soft margin svm方式
就是找两个距离余量,需要留着距离之间的距离

import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
boston = datasets.load_boston()
X = boston.data
y = boston.target
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X,y,random_state=666)
from sklearn.svm import LinearSVR
from sklearn.svm import SVR
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
def SrandardlinearSVR(epsilon=0.1):
return Pipeline([
("std_scaler", StandardScaler()),
("linearSVR", LinearSVR(epsilon=epsilon))
])
svr = SrandardlinearSVR()
svr.fit(X_train, y_train)
svr.score(X_test, y_test)

%23%23%23%23%20%E6%94%AF%E6%8C%81%E5%90%91%E9%87%8F%E6%9C%BA(Support%20Vector%20Machine)%0A**%E4%B8%8D%E9%80%82%E5%AE%9A%E9%97%AE%E9%A2%98**%E4%B8%8D%E6%AD%A2%E4%B8%80%E4%B8%AA%E5%86%B3%E7%AD%96%E8%BE%B9%E7%95%8C%0A!%5B0caf6e4b9485ba12d98a1e4a3baab505.png%5D(en-resource%3A%2F%2Fdatabase%2F1248%3A1)%0A%E8%A6%81%E6%89%BE%E4%B8%80%E4%B8%AA%E5%86%B3%E7%AD%96%E8%BE%B9%E7%95%8C%EF%BC%8C%E4%B8%8D%E4%BB%85%E8%83%BD%E5%B0%86%E8%AE%AD%E7%BB%83%E9%9B%86%E5%BE%88%E5%A5%BD%E7%9A%84%E5%88%92%E5%88%86%EF%BC%8C%E8%80%8C%E4%B8%94%E6%8F%90%E5%8D%87%E6%A8%A1%E5%9E%8B%E7%9A%84%E6%B3%9B%E5%8C%96%E8%83%BD%E5%8A%9B%0A%E6%94%AF%E6%8C%81%E5%90%91%E9%87%8F%E6%9C%BA%E7%9B%B4%E6%8E%A5%E5%B0%86%E7%AE%97%E6%B3%95%E6%94%BE%E5%9C%A8%E8%BF%90%E8%A1%8C%E7%9A%84%E5%86%85%E9%83%A8%EF%BC%8C%E5%9C%A8%E4%B8%8D%E9%80%82%E5%AE%9A%E7%9A%84%E9%97%AE%E9%A2%98%E4%B8%AD%EF%BC%8C%E4%BD%BF%E7%94%A8svm%E5%8E%BB%E5%BB%BA%E6%A8%A1%E6%98%AF%E5%A5%BD%E7%9A%84%0Asvm%E6%98%AF%E7%BB%9F%E8%AE%A1%E5%AD%A6%E4%B9%A0%E4%B8%AD%E9%9D%9E%E5%B8%B8%E9%87%8D%E8%A6%81%E7%9A%84%E6%96%B9%E6%B3%95%0A*svm%E5%B0%9D%E8%AF%95%E5%AF%BB%E6%89%BE%E4%B8%80%E4%B8%AA%E6%9C%80%E4%BC%98%E7%9A%84%E5%86%B3%E7%AD%96%E8%BE%B9%E7%95%8C%EF%BC%8C%E8%B7%9D%E7%A6%BB%E4%B8%A4%E4%B8%AA%E7%B1%BB%E5%88%AB%E7%9A%84%E6%9C%80%E8%BF%91%E7%9A%84%E6%A0%B7%E6%9C%AC%E6%9C%80%E8%BF%9C%EF%BC%8C%E8%B7%9D%E7%A6%BB%E5%86%B3%E7%AD%96%E8%BE%B9%E7%95%8C%E6%9C%80%E8%BF%91%E7%9A%84%E7%82%B9%E7%A7%B0%E4%B8%BA%E6%94%AF%E6%92%91%E5%90%91%E9%87%8F*%0A**svm%E7%AE%97%E6%B3%95%E8%A6%81%E5%81%9A%E7%9A%84%E5%B0%B1%E6%98%AF%E6%9C%80%E5%A4%A7%E5%8C%96margin%EF%BC%8C%E4%B9%9F%E5%B0%B1%E6%98%AF%E8%A6%81%E6%89%BE%E5%88%B0%E6%9C%80%E5%A4%A7%E7%9A%84d**%0A%0A%24%24margin%20%3D%202%20d%24%24%0A!%5B12eb0cb0f0748a967f9319b91eb36242.png%5D(en-resource%3A%2F%2Fdatabase%2F1250%3A1)%0A%0A%E8%A7%A3%E6%9E%90%E5%87%A0%E4%BD%95%EF%BC%8C%E7%82%B9%E5%88%B0%E7%9B%B4%E7%BA%BF%E7%9A%84%E8%B7%9D%E7%A6%BB%0A%0A(x%2Cy)%E5%88%B0Ax%2BBy%2BC%3D0%E7%9A%84%E8%B7%9D%E7%A6%BB%24%5Cfrac%7B%7CAx%2BBy%2BC%7C%7D%7B%5Csqrt%7BA%5E2%2BB%5E2%7D%7D%24%0A%E6%89%A9%E5%B1%95%E5%88%B0n%E7%BB%B4%E7%A9%BA%E9%97%B4%24%5Ctheta%5ETx_b%3D0%24--%3E%24w%5ETx%2Bb%3D0%24--%3E%24%5Cfrac%7Bw%5ET%2Bb%7D%7B%7C%7Cw%7C%7C%7D%24%0A%24%7C%7Cw%7C%7C%3D%5Csqrt%7Bw%5E2_1%2Bw_2%5E2%2B...%2Bw%5E2_n%7D%24%0A%24%5Cfrac%7Bw%5ETx%5Ei%2Bb%7D%7B%7C%7Cw%7C%7C%7D%5Cgeq%20d%24%20%20%20%20%20%20%E5%85%B6%E4%B8%AD%24%5Cforall%20y%5Ei%3D1%24%0A%24%5Cfrac%7Bw%5ETx%5Ei%2Bb%7D%7B%7C%7Cw%7C%7C%7D%5Cleq%20-d%24%20%20%20%20%20%20%E5%85%B6%E4%B8%AD%24%5Cforall%20y%5Ei%3D-1%24%0A%24%5Cfrac%7Bw%5ETx%5Ei%2Bb%7D%7B%7C%7Cw%7C%7Cd%7D%5Cgeq%201%24%20%20%20%20%20%20%E5%85%B6%E4%B8%AD%24%5Cforall%20y%5Ei%3D1%24%0A%24%5Cfrac%7Bw%5ETx%5Ei%2Bb%7D%7B%7C%7Cw%7C%7Cd%7D%5Cleq%20-1%24%20%20%20%20%20%20%E5%85%B6%E4%B8%AD%24%5Cforall%20y%5Ei%3D-1%24%0A%24w%5ET_dx%5Ei%2Bb_d%5Cgeq1%24%E5%85%B6%E4%B8%AD%24%5Cforall%20y%5Ei%3D1%24%0A%24w%5ET_dx%5Ei%2Bb_d%5Cleq-1%24%E5%85%B6%E4%B8%AD%24%5Cforall%20y%5Ei%3D-1%24%0A!%5B00ea5f20051de99d61112655ec626c62.png%5D(en-resource%3A%2F%2Fdatabase%2F1256%3A1)%0A%0A%24y%5Ei(w%5ETx%5Ei%2Bb)%5Cgeq1%24%20%0A%E5%AF%B9%E4%BA%8E%E4%BB%BB%E6%84%8F%E6%94%AF%E6%92%91%E5%90%91%E9%87%8Fx%E6%9C%89%20%24max%5Cfrac%7B%7Cw%5ETx%2Bb%7C%7D%7B%7C%7Cw%7C%7C%7D%24--%3E%24max%5Cfrac%7B1%7D%7B%7C%7Cw%7C%7C%7D%24--%3E%24min%5Cfrac%7B1%7D%7B2%7D%7C%7Cw%7C%7C%5E2%24%0A%0A%23%23%23%23%20Soft%20Margin%E5%92%8CSVM%E7%9A%84%E6%AD%A3%E5%88%99%E5%8C%96%0A%0ASoft%20Margin%20SVM%20%24y%5Ei(w%5ETx%5Ei%2Bb)%5Cgeq1-%5Czeta%24%0A%24%5Czeta_i%5Cgeq0%24%0A%24min%5Cfrac%7B1%7D%7B2%7D%7C%7Cw%7C%7C%5E2%2BC%5Ccdot%5CSigma%5Em_%7Bi%3D1%7D%5Czeta_i%24%0AC%E4%B8%BA%E8%B6%85%E5%8F%82%E6%95%B0%EF%BC%8C%E5%B9%B3%E8%A1%A1%E4%B8%A4%E9%83%A8%E5%88%86%E7%9A%84%E9%87%8D%E8%A6%81%E7%A8%8B%E5%BA%A6%0A%0A%E4%BD%BF%E7%94%A8SVM%E9%9C%80%E8%A6%81%E5%AF%B9%E6%95%B0%E6%8D%AE%E8%BF%9B%E8%A1%8C%E6%A0%87%E5%87%86%E5%8C%96%E5%A4%84%E7%90%86%0A%E5%AF%B9%E4%BA%8ESVM%E4%B8%8A%EF%BC%8C%E6%95%B0%E6%8D%AE%E5%B0%BA%E5%BA%A6%E4%B8%8D%E5%90%8C%EF%BC%8C%E9%9C%80%E8%A6%81%E5%AF%B9%E6%95%B0%E6%8D%AE%E8%BF%9B%E8%A1%8C%E6%A0%87%E5%87%86%E5%8C%96%E5%A4%84%E7%90%86%0A%0A%0A%0A%23%23%23%23%20%E4%BB%80%E4%B9%88%E6%98%AF%E6%A0%B8%E5%87%BD%E6%95%B0%0A!%5B5117e2fab8f9aa29439f12627edfde35.png%5D(en-resource%3A%2F%2Fdatabase%2F1258%3A1)%0A%0Asvm%E7%9A%84%E6%9C%AC%E8%B4%A8%EF%BC%9A%E5%85%B6%E5%AE%9E%E5%B0%B1%E6%98%AF%E6%B1%82%E8%A7%A3%E6%9C%80%E4%BC%98%E5%8C%96%E9%97%AE%E9%A2%98%EF%BC%8C%E6%B1%82%E8%A7%A3%E6%9C%80%E4%BC%98%E5%8C%96%E8%BF%87%E7%A8%8B%E4%B8%AD%EF%BC%8C%E9%9C%80%E8%A6%81%E5%8F%98%E5%BD%A2%E4%B8%BA%E6%95%B0%E5%AD%A6%E4%B8%AD%E6%9C%80%E5%A5%BD%E8%A7%A3%E5%86%B3%E7%9A%84%E9%97%AE%E9%A2%98%0A!%5B1cfaf8fbf5fdedf1c8f96c288b5f1f8f.png%5D(en-resource%3A%2F%2Fdatabase%2F1260%3A1)%0A%E6%A0%B8%E5%87%BD%E6%95%B0%E6%80%9D%E6%83%B3%EF%BC%9A%24K(x%5Ei%2Cx%5Ek)%3Dx%5Ei%2Cx%5Ej%24%0A%24K(x%2Cy)%20%3D%20(x%20%5Ccdot%20y%2B1)%5E2%24%0A%24%24K(x%2Cy)%20%3D%20(%5Csum%5En_%7Bi%3D1%7Dx%5Ccdot%20y%2B1)%5E2%0A%20%20%20%20%20%20%20%20%20%20%20%3D%5Csum%5En_%7Bi%3D1%7D(x_i%5E2)(y_i%5E2)%2B%5Csum%5En_%7Bi%3D2%7D%5Csum%5E%7Bi-1%7D_%7Bj%3D1%7D(%5Csqrt%7B2%7Dx_ix_j)(%5Csqrt%7B2%7Dy_iy_j)%2B%5Csum%5En_%7Bi%3D1%7D(%5Csqrt%7B2%7Dx_i)(%5Csqrt%7B2%7Dy_i)%2B1%24%24%0A%E6%A0%B8%E5%87%BD%E6%95%B0%E4%BC%9A%E9%99%8D%E4%BD%8E%E5%8E%9F%E7%AE%97%E6%B3%95%E7%9A%84%E5%A4%8D%E6%9D%82%E5%BA%A6%0A%24%24K(x%2Cy)%20%3D%20(x%5Ccdot%20y%20%2Bc)%5Ed%24%24%0Ad%E5%B0%B1%E6%98%AF%E5%87%BD%E6%95%B0%E9%87%8C%E7%9A%84degree%0A%0A%23%23%23%23%20%E9%AB%98%E6%96%AF%E6%A0%B8%E5%87%BD%E6%95%B0%0AK(x%2Cy)%E8%A1%A8%E7%A4%BAx%E5%92%8Cy%E7%9A%84%E7%82%B9%E4%B9%98%0A%24%24K(x%2Cy)%20%3D%20e%5E%7B-%5Cgamma%7C%7Cx-y%7C%7C%5E2%7D%24%24%0A%E6%AD%A3%E6%80%81%E5%88%86%E5%B8%83%E5%B0%B1%E6%98%AF%E9%AB%98%E6%96%AF%E5%87%BD%E6%95%B0%20%24g(x)%20%3D%20%5Cfrac%7B1%7D%7B%5Csigma%5Csqrt%7B2%5Cpi%7D%7De%5E%7B-%5Cfrac%7B1%7D%7B2%7D(%5Cfrac%7Bx-%5Cmu%7D%7B%5Csigma%7D)%5E2%7D%24%0ARBF%E6%A0%B8%20Radial%20Basis%20Function%20Kernel%0A%E5%B0%86%E6%AF%8F%E4%B8%80%E4%B8%AA%E6%A0%B7%E6%9C%AC%E7%82%B9%E6%98%A0%E5%B0%84%E5%88%B0%E4%B8%80%E4%B8%AA%E6%97%A0%E7%A9%B7%E7%BB%B4%E7%9A%84%E7%89%B9%E5%BE%81%E7%A9%BA%E9%97%B4%0A**%E5%A4%9A%E9%A1%B9%E5%BC%8F%E7%89%B9%E5%BE%81**%E4%BE%9D%E9%9D%A0%E5%8D%87%E7%BB%B4%E6%98%AF%E7%9A%84%E5%8E%9F%E6%9C%AC%E7%BA%BF%E6%80%A7%E4%B8%8D%E5%8F%AF%E5%88%86%E7%9A%84%E6%95%B0%E6%8D%AE%E7%BA%BF%E6%80%A7%E5%8F%AF%E5%88%86%0A%60%60%60python%0Aimport%20numpy%20as%20np%0Aimport%20matplotlib.pyplot%20as%20plt%0A%0Afrom%20sklearn%20import%20datasets%0Airis%20%3D%20datasets.load_iris()%0AX%20%3D%20iris.data%0Ay%20%3D%20iris.target%0AX%20%3D%20X%5By%20%3C%202%2C%20%3A2%5D%0Ay%20%3D%20y%5By%20%3C%202%5D%0A%0Aplt.scatter(X%5By%20%3D%3D%200%2C%200%5D%2C%20X%5By%20%3D%3D%200%2C%201%5D%2C%20color%3D'red')%0Aplt.scatter(X%5By%20%3D%3D%201%2C%200%5D%2C%20X%5By%20%3D%3D%201%2C%201%5D%2C%20color%3D'blue')%0Aplt.show()%0A%60%60%60%0A!%5Bf4e129e8b4c2d4660a312572e135ab40.png%5D(en-resource%3A%2F%2Fdatabase%2F1262%3A1)%0A%60%60%60python%0Afrom%20sklearn.preprocessing%20import%20StandardScaler%0AstandardScaler%20%3D%20StandardScaler()%0AstandardScaler.fit(X)%0AX_standard%20%3D%20standardScaler.transform(X)%0Afrom%20sklearn.svm%20import%20LinearSVC%0A%23SVC%E4%BD%BF%E7%94%A8%E5%90%91%E9%87%8F%E5%81%9A%E5%88%86%E7%B1%BB%0Asvc%20%3D%20LinearSVC(C%3D1e9)%0Asvc.fit(X_standard%2C%20y)%0A%0Adef%20plot_decision_boundary(model%2C%20axis)%3A%0A%20%20%20%20x0%2Cx1%20%3D%20np.meshgrid(%0A%20%20%20%20%20%20%20%20np.linspace(axis%5B0%5D%2Caxis%5B1%5D%2Cint((axis%5B1%5D-axis%5B0%5D)*100)).reshape(-1%2C1)%2C%0A%20%20%20%20%20%20%20%20np.linspace(axis%5B2%5D%2Caxis%5B3%5D%2Cint((axis%5B3%5D-axis%5B2%5D)*100)).reshape(-1%2C1)%2C%0A%20%20%20%20)%0A%20%20%20%20X_new%20%3D%20np.c_%5Bx0.ravel()%2Cx1.ravel()%5D%0A%20%20%20%20y_predict%20%3D%20model.predict(X_new)%0A%20%20%20%20zz%20%3D%20y_predict.reshape(x0.shape)%0A%20%20%20%20from%20matplotlib.colors%20import%20ListedColormap%0A%20%20%20%20custom_camp%20%3D%20ListedColormap(%5B'%23EF9A9A'%2C'%23FFF59D'%2C'%2390CAF9'%5D)%0A%20%20%20%20plt.contourf(x0%2C%20x1%2C%20zz%2C%20linewith%3D5%2C%20camp%3Dcustom_camp)%0A%20%20%20%20w%20%3D%20model.coef_%5B0%5D%0A%20%20%20%20b%20%3D%20model.intercept_%5B0%5D%0A%20%20%20%20plot_x%20%3D%20np.linspace(axis%5B0%5D%2C%20axis%5B1%5D%2C%20200)%0A%20%20%20%20up_y%20%3D%20-w%5B0%5D%2Fw%5B1%5D*plot_x-b%2Fw%5B1%5D%2B1%2Fw%5B1%5D%0A%20%20%20%20down_y%20%3D%20-w%5B0%5D%2Fw%5B1%5D*plot_x-b%2Fw%5B1%5D-1%2Fw%5B1%5D%0A%20%20%20%20up_index%20%3D%20(up_y%3E%3Daxis%5B2%5D)%26(up_y%3C%3Daxis%5B3%5D)%0A%20%20%20%20down_index%20%3D%20(down_y%3E%3Daxis%5B2%5D)%26(down_y%3C%3Daxis%5B3%5D)%0A%20%20%20%20plt.plot(plot_x%5Bup_index%5D%2Cup_y%5Bup_index%5D%2Ccolor%3D'black')%0A%20%20%20%20plt.plot(plot_x%5Bdown_index%5D%2Cdown_y%5Bdown_index%5D%2Ccol%0A%0Aplot_decision_boundary(svc%2C%20axis%3D%5B-3%2C3%2C-3%2C3%5D)%0Aplt.scatter(X_standard%5By%3D%3D0%2C0%5D%2CX_standard%5By%3D%3D0%2C1%5D)%0Aplt.scatter(X_standard%5By%3D%3D1%2C0%5D%2CX_standard%5By%3D%3D1%2C1%5D)%0Aplt.show()%0A%60%60%60%0A!%5B2331a8982ae49eb7cd14410f2d041088.png%5D(en-resource%3A%2F%2Fdatabase%2F1268%3A1)%0A%0A!%5B985b31786a9731b65da134eec7cc6c05.png%5D(en-resource%3A%2F%2Fdatabase%2F1264%3A1)%0A%60%60%60python%0Asvc2%20%3D%20LinearSVC(C%3D0.01)%0Asvc2.fit(X_standard%2C%20y)%0Aplot_decision_boundary(svc2%2C%20axis%3D%5B-3%2C3%2C-3%2C3%5D)%0Aplt.scatter(X_standard%5By%3D%3D0%2C0%5D%2CX_standard%5By%3D%3D0%2C1%5D)%0Aplt.scatter(X_standard%5By%3D%3D1%2C0%5D%2CX_standard%5By%3D%3D1%2C1%5D)%0Aplt.show()%0A%60%60%60%0A!%5Bf0fb80292a4c6f14fc917ff2d0f71e05.png%5D(en-resource%3A%2F%2Fdatabase%2F1266%3A1)%0A!%5Bbabef1fd16618f5aa99c7a510dfe5a32.png%5D(en-resource%3A%2F%2Fdatabase%2F1270%3A1)%0A%0A%60%60%60python%0A%23%E5%A4%9A%E9%A1%B9%E5%BC%8F%E5%A4%84%E7%90%86%E9%9D%9E%E7%BA%BF%E6%80%A7%E9%97%AE%E9%A2%98%0Aimport%20numpy%20as%20npimport%20matplotlib.pyplot%20as%20plt%0Afrom%20sklearn%20import%20datasets%0AX%2C%20y%20%3D%20datasets.make_moons()%0Aplt.scatter(X%5By%3D%3D0%2C0%5D%2CX%5By%3D%3D0%2C1%5D)plt.scatter(X%5By%3D%3D1%2C0%5D%2CX%5By%3D%3D1%2C1%5D)plt.show()%0A%0A%60%60%60%0A!%5B484ddeb4dcfa3f08a8e9d7c25431ad28.png%5D(en-resource%3A%2F%2Fdatabase%2F1272%3A1)%0A%0A%60%60%60python%0A%23%E6%9E%84%E5%BB%BA%E6%95%B0%E6%8D%AE%E9%9B%86%0AX%2Cy%20%3D%20datasets.make_moons(noise%3D0.15%2C%20random_state%3D666)%0Aplt.scatter(X%5By%3D%3D0%2C0%5D%2CX%5By%3D%3D0%2C1%5D)plt.scatter(X%5By%3D%3D1%2C0%5D%2CX%5By%3D%3D1%2C1%5D)plt.show()%0A%0A%60%60%60%0A!%5B513f4ea41345e2ca60b2305c16ed4a40.png%5D(en-resource%3A%2F%2Fdatabase%2F1274%3A1)%0A%0A%60%60%60python%0Afrom%20sklearn.preprocessing%20import%20PolynomialFeatures%2C%20StandardScaler%0Afrom%20sklearn.svm%20import%20LinearSVC%0Afrom%20sklearn.pipeline%20import%20Pipeline%0Adef%20PolynomialSVC(degree%2CC%3D1.0)%3A%0A%20%20%20%20return%20Pipeline(%5B%0A%20%20%20%20%20%20%20%20(%22poly%22%2C%20PolynomialFeatures(degree%3Ddegree))%2C%0A%20%20%20%20%20%20%20%20(%22std_scaler%22%2C%20StandardScaler())%2C%0A%20%20%20%20%20%20%20%20(%22linearSVC%22%2C%20LinearSVC(C%3DC))%2C%0A%20%20%20%20%5D)%0Apoly_svc%20%3D%20PolynomialSVC(degree%3D3)%0Apoly_svc.fit(X%2Cy)%0A%0Adef%20plot_decision_boundary(model%2C%20axis)%3A%0A%20%20%20%20x0%2Cx1%20%3D%20np.meshgrid(%0A%20%20%20%20%20%20%20%20np.linspace(axis%5B0%5D%2Caxis%5B1%5D%2Cint((axis%5B1%5D-axis%5B0%5D)*100)).reshape(-1%2C1)%2C%0A%20%20%20%20%20%20%20%20np.linspace(axis%5B2%5D%2Caxis%5B3%5D%2Cint((axis%5B3%5D-axis%5B2%5D)*100)).reshape(-1%2C1)%2C%0A%20%20%20%20)%0A%20%20%20%20X_new%20%3D%20np.c_%5Bx0.ravel()%2Cx1.ravel()%5D%0A%20%20%20%20y_predict%20%3D%20model.predict(X_new)%0A%20%20%20%20zz%20%3D%20y_predict.reshape(x0.shape)%0A%20%20%20%20from%20matplotlib.colors%20import%20ListedColormap%0A%20%20%20%20custom_camp%20%3D%20ListedColormap(%5B'%23EF9A9A'%2C'%23FFF59D'%2C'%2390CAF9'%5D)%0Aplt.contourf(x0%2C%20x1%2C%20zz%2C%20linewith%3D5%2C%20camp%3Dcustom_camp)%0Aplot_decision_boundary(poly_svc%2Caxis%3D%5B-1.5%2C2.5%2C-1.0%2C1.5%5D)%0Aplt.scatter(X%5By%3D%3D0%2C0%5D%2C%20X%5By%3D%3D0%2C1%5D)%0Aplt.scatter(X%5By%3D%3D1%2C0%5D%2C%20X%5By%3D%3D1%2C1%5D)%0Aplt.show()%0A%0A%60%60%60%0A!%5B3f85011b23e5c25bb832e83b7d02b7e0.png%5D(en-resource%3A%2F%2Fdatabase%2F1276%3A1)%0A%60%60%60python%0A%23%E5%A4%9A%E9%A1%B9%E5%BC%8F%E6%A0%B8%E5%87%BD%E6%95%B0%0Afrom%20sklearn.svm%20import%20SVC%0Adef%20PolynomialKernelSVC(degree%2C%20C%3D1.0)%3A%0A%20%20%20%20return%20Pipeline(%5B%0A%20%20%20%20%20%20%20%20(%22std_scaler%22%2C%20StandardScaler())%2C%0A%20%20%20%20%20%20%20%20(%22kernelSVC%22%2C%20SVC(kernel%3D'poly'%2Cdegree%3Ddegree%2CC%3DC))%2C%0A%20%20%20%20%5D)%0Apoly_kernel_svc%20%3D%20PolynomialKernelSVC(degree%3D3)%0Apoly_kernel_svc.fit(X%2Cy)%0Aplot_decision_boundary(poly_kernel_svc%2Caxis%3D%5B-1.5%2C2.5%2C-1.0%2C1.5%5D)%0Aplt.scatter(X%5By%3D%3D0%2C0%5D%2C%20X%5By%3D%3D0%2C1%5D)%0Aplt.scatter(X%5By%3D%3D1%2C0%5D%2C%20X%5By%3D%3D1%2C1%5D)%0Aplt.show()%0A%0A%60%60%60%0A!%5B8f3a1d36c569485a2434667ff571c129.png%5D(en-resource%3A%2F%2Fdatabase%2F1278%3A1)%0A%0A%23%23%23%23%20scikit-learn%E7%9A%84%E9%AB%98%E6%96%AF%E6%A0%B8%E5%87%BD%E6%95%B0%0A%24%24K(x%2Cy)%3De%5E%7B-%5Cgamma%7C%7Cx-y%7C%7C%7D%5E2%24%24%0Agamma%E8%B6%8A%E5%A4%A7%EF%BC%8C%E9%AB%98%E6%96%AF%E5%88%86%E5%B8%83%E8%B6%8A%E7%AA%84%0Agamma%E8%B6%8A%E5%B0%8F%EF%BC%8C%E9%AB%98%E6%96%AF%E5%88%86%E5%B8%83%E8%B6%8A%E5%AE%BD%0A%0A%60%60%60python%0Aimport%20numpy%20as%20np%0Aimport%20matplotlib.pyplot%20as%20plt%0Afrom%20sklearn%20import%20datasets%0AX%2C%20y%20%3D%20datasets.make_moons(noise%3D0.15%2C%20random_state%3D666)%0Aplt.scatter(X%5By%20%3D%3D%200%2C%200%5D%2C%20X%5By%20%3D%3D%200%2C%201%5D)plt.scatter(X%5By%20%3D%3D%201%2C%200%5D%2C%20X%5By%20%3D%3D%201%2C%201%5D)%0Aplt.show()%0A%60%60%60%0A!%5Bb774bd32a939d44d816d5aead2d7780e.png%5D(en-resource%3A%2F%2Fdatabase%2F1280%3A0)%0A%0A%60%60%60python%0Afrom%20sklearn.preprocessing%20import%20StandardScaler%0Afrom%20sklearn.svm%20import%20SVC%0Afrom%20sklearn.pipeline%20import%20Pipeline%0Adef%20RBFkernelSVC(gamma%3D1.0)%3A%0A%20%20%20%20return%20Pipeline(%5B%0A%20%20%20%20%20%20%20%20(%22std_scaler%22%2C%20StandardScaler())%2C%0A%20%20%20%20%20%20%20%20(%22svc%22%2C%20SVC(kernel%3D'rbf'%2C%20gamma%3Dgamma))%2C%0A%20%20%20%20%5D)%0Asvc%20%3D%20RBFkernelSVC(gamma%3D1.0)%0Asvc.fit(X%2C%20y)%0Adef%20plot_decision_boundary(model%2C%20axis)%3A%0A%20%20%20%20x0%2Cx1%20%3D%20np.meshgrid(%0A%20%20%20%20%20%20%20%20np.linspace(axis%5B0%5D%2Caxis%5B1%5D%2Cint((axis%5B1%5D-axis%5B0%5D)*100)).reshape(-1%2C1)%2C%0A%20%20%20%20%20%20%20%20np.linspace(axis%5B2%5D%2Caxis%5B3%5D%2Cint((axis%5B3%5D-axis%5B2%5D)*100)).reshape(-1%2C1)%2C%0A%20%20%20%20)%0A%20%20%20%20X_new%20%3D%20np.c_%5Bx0.ravel()%2Cx1.ravel()%5D%0A%20%20%20%20y_predict%20%3D%20model.predict(X_new)%0A%20%20%20%20zz%20%3D%20y_predict.reshape(x0.shape)%0A%20%20%20%20from%20matplotlib.colors%20import%20ListedColormap%0A%20%20%20%20custom_camp%20%3D%20ListedColormap(%5B'%23EF9A9A'%2C'%23FFF59D'%2C'%2390CAF9'%5D)%0A%20%20%20%20plt.contourf(x0%2C%20x1%2C%20zz%2C%20linewith%3D5%2Ccamp%3Dcustom_camp)%0Aplot_decision_boundary(svc%2C%20axis%3D%5B-1.5%2C%202.5%2C%20-1.0%2C%201.5%5D)%0Aplt.scatter(X%5By%20%3D%3D%200%2C%200%5D%2C%20X%5By%20%3D%3D%200%2C%201%5D)%0Aplt.scatter(X%5By%20%3D%3D%201%2C%200%5D%2C%20X%5By%20%3D%3D%201%2C%201%5D)%0Aplt.show()%0A%60%60%60%0A!%5B2a0a37f36e6ff2b60a627b16957e4f1b.png%5D(en-resource%3A%2F%2Fdatabase%2F1282%3A0)%0A%60%60%60python%0Asvc_gamma100%20%3D%20RBFkernelSVC(gamma%3D100)%0Asvc_gamma100.fit(X%2Cy)%0Aplot_decision_boundary(svc_gamma100%2C%20axis%3D%5B-1.5%2C%202.5%2C%20-1.0%2C%201.5%5D)%0Aplt.scatter(X%5By%20%3D%3D%200%2C%200%5D%2C%20X%5By%20%3D%3D%200%2C%201%5D)%0Aplt.scatter(X%5By%20%3D%3D%201%2C%200%5D%2C%20X%5By%20%3D%3D%201%2C%201%5D)%0Aplt.show()%0A%23%E5%86%B3%E7%AD%96%E8%BE%B9%E7%95%8C%E7%9A%84%E8%BF%99%E4%B8%80%E7%B1%BB%EF%BC%8C%E5%85%B6%E4%B8%AD%E5%9C%A8%E5%91%A8%E5%9B%B4%E9%83%BD%E5%BD%A2%E6%88%90%E4%BA%86%E4%B8%AD%E5%9E%8B%E7%9A%84%E5%9B%BE%E6%A1%88%0A%60%60%60%0A!%5B9ed9d82ba1f9ac5e255258fa3a6bf0b2.png%5D(en-resource%3A%2F%2Fdatabase%2F1284%3A0)%0A%0A%60%60%60python%0Asvc_gamma10%20%3D%20RBFkernelSVC(gamma%3D10)%0Asvc_gamma10.fit(X%2Cy)%0Aplot_decision_boundary(svc_gamma10%2C%20axis%3D%5B-1.5%2C%202.5%2C%20-1.0%2C%201.5%5D)%0Aplt.scatter(X%5By%20%3D%3D%200%2C%200%5D%2C%20X%5By%20%3D%3D%200%2C%201%5D)%0Aplt.scatter(X%5By%20%3D%3D%201%2C%200%5D%2C%20X%5By%20%3D%3D%201%2C%201%5D)%0Aplt.show()%0A%60%60%60%0A!%5B6f59f08ee429f02b7ee8a1bd1a11f381.png%5D(en-resource%3A%2F%2Fdatabase%2F1286%3A0)%0A%0A%60%60%60python%0Asvc_gamma03%20%3D%20RBFkernelSVC(gamma%3D0.3)%0Asvc_gamma03.fit(X%2Cy)%0Aplot_decision_boundary(svc_gamma03%2C%20axis%3D%5B-1.5%2C%202.5%2C%20-1.0%2C%201.5%5D)%0Aplt.scatter(X%5By%20%3D%3D%200%2C%200%5D%2C%20X%5By%20%3D%3D%200%2C%201%5D)%0Aplt.scatter(X%5By%20%3D%3D%201%2C%200%5D%2C%20X%5By%20%3D%3D%201%2C%201%5D)%0Aplt.show()%0A%60%60%60%0A!%5B7434c1455d79de208ac36518a81d609c.png%5D(en-resource%3A%2F%2Fdatabase%2F1288%3A0)%0A%0A%23%23%23%23%20SVM%E6%80%9D%E8%B7%AF%E8%A7%A3%E5%86%B3%E5%9B%9E%E5%BD%92%E9%97%AE%E9%A2%98%0A%E4%BD%BF%E7%94%A8margin%E7%9A%84%E6%96%B9%E5%BC%8F%EF%BC%8C%E7%B1%BB%E4%BC%BC%E4%BA%8Esoft%20margin%20svm%E6%96%B9%E5%BC%8F%0A%E5%B0%B1%E6%98%AF%E6%89%BE%E4%B8%A4%E4%B8%AA%E8%B7%9D%E7%A6%BB%E4%BD%99%E9%87%8F%EF%BC%8C%E9%9C%80%E8%A6%81%E7%95%99%E7%9D%80%E8%B7%9D%E7%A6%BB%E4%B9%8B%E9%97%B4%E7%9A%84%E8%B7%9D%E7%A6%BB%0A%60%60%60python%0Aimport%20numpy%20as%20np%0Aimport%20matplotlib.pyplot%20as%20plt%0Afrom%20sklearn%20import%20datasets%0Aboston%20%3D%20datasets.load_boston()%0AX%20%3D%20boston.data%0Ay%20%3D%20boston.target%0Afrom%20sklearn.model_selection%20import%20train_test_split%0AX_train%2C%20X_test%2C%20y_train%2C%20y_test%20%3D%20train_test_split(X%2Cy%2Crandom_state%3D666)%0Afrom%20sklearn.svm%20import%20LinearSVR%0Afrom%20sklearn.svm%20import%20SVR%0Afrom%20sklearn.preprocessing%20import%20StandardScaler%0Afrom%20sklearn.pipeline%20import%20Pipeline%0Adef%20SrandardlinearSVR(epsilon%3D0.1)%3A%0A%20%20%20%20return%20Pipeline(%5B%0A%20%20%20%20%20%20%20%20(%22std_scaler%22%2C%20StandardScaler())%2C%0A%20%20%20%20%20%20%20%20(%22linearSVR%22%2C%20LinearSVR(epsilon%3Depsilon))%0A%20%20%20%20%5D)%0Asvr%20%3D%20SrandardlinearSVR()%0Asvr.fit(X_train%2C%20y_train)%0Asvr.score(X_test%2C%20y_test)%0A%60%60%60%0A!%5B31da38077dd74c1b40e80c1bc844c0e7.png%5D(en-resource%3A%2F%2Fdatabase%2F1290%3A0)%0A%0A%0A

【udacity】机器学习-支持向量机的更多相关文章

  1. 机器学习——支持向量机(SVM)

    机器学习--支持向量机(SVM) 支持向量机(Support Vector Machine)广泛地应用于分类问题,回归问题和异常检测问题.支持向量机一个很好的性质是其与凸优化问题相对应,局部最优解就是 ...

  2. 机器学习——支持向量机SVM

    前言 学习本章节前需要先学习: <机器学习--最优化问题:拉格朗日乘子法.KKT条件以及对偶问题> <机器学习--感知机> 1 摘要: 支持向量机(SVM)是一种二类分类模型, ...

  3. 机器学习——支持向量机(SVM)之拉格朗日乘子法,KKT条件以及简化版SMO算法分析

    SVM有很多实现,现在只关注其中最流行的一种实现,即序列最小优化(Sequential Minimal Optimization,SMO)算法,然后介绍如何使用一种核函数(kernel)的方式将SVM ...

  4. coursera机器学习-支持向量机SVM

    #对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...

  5. 机器学习 支持向量机(SVM) 从理论到放弃,从代码到理解

    基本概念 支持向量机(support vector machines,SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器.支持向量机还包括核技巧,这使它成为实质上的非线性分 ...

  6. 机器学习-支持向量机SVM

    简介: 支持向量机(SVM)是一种二分类的监督学习模型,他的基本模型是定义在特征空间上的间隔最大的线性模型.他与感知机的区别是,感知机只要找到可以将数据正确划分的超平面即可,而SVM需要找到间隔最大的 ...

  7. 机器学习---支持向量机(SVM)

    非常久之前就学了SVM,总认为不就是找到中间那条线嘛,但有些地方模棱两可,真正编程的时候又是一团浆糊.參数任意试验,毫无章法.既然又又一次学到了这一章节,那就要把之前没有搞懂的地方都整明确,嗯~ 下面 ...

  8. 吴裕雄 python 机器学习——支持向量机非线性回归SVR模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import datasets, linear_model,svm fr ...

  9. python大战机器学习——支持向量机

    支持向量机(Support Vector Machine,SVM)的基本模型是定义在特征空间上间隔最大的线性分类器.它是一种二类分类模型,当采用了核技巧之后,支持向量机可以用于非线性分类. 1)线性可 ...

随机推荐

  1. linux 内核 2.5-4.7 版本change

    https://kernelnewbies.org/LinuxVersions?action=show&redirect=Linux26Changes https://kernelnewbie ...

  2. optimizer_index_cost_adj

    Oracle在选择不同的访问路径时,会对全表扫描和索引扫描进行比较评估. 在比较的时候,Oracle会把索引扫描的成本转换为全表扫描的成本,和全表扫描的COST进行比较.这个转换需要一个转换因子. 就 ...

  3. 微信小程序的小问题(2)

    1.在小程序中,有时需要用到背景图片,但是如果使用background-image的话,就无法控制图片的大小,background-image一般用于将图片压缩为1像素的背景图片,然后自动填充铺满.使 ...

  4. CentOS下安装使用phpMyAdmin. Set up phpMyAdmin on CentOS

    须要组件: Apache PHP Mysql phpMyAdmin Apache 0. yum install httpd 1. 确认版本号 $ httpd -v 2. 启动apache $ sudo ...

  5. Android 实现文字与图片的混排

    在我们的项目中,常常会碰到图片与文字混排的问题.解决这类问题的方法有非常多,本文给出的方法不是唯一的.仅仅有依据实际场景才干找到更适合的方法. 本文主要通过xml布局来实现图片与文字的混排(水平排列) ...

  6. 支撑百亿级应用的 NewSQL

    支撑百亿级应用的 NewSQL https://zhuanlan.zhihu.com/newsql/ 项目背景 初次接触 TiDB,是通过同程网首席架构师王晓波先生的分享,当时同程网正在使开发和数据库 ...

  7. 截取字符(substr)检索字符位置(instr)

    1.SUBSTR(string,start_position,[length]) 求子字符串,返回字符串注释: string 元字符串start_position 开始位置(从0开始)length 可 ...

  8. PCB MS SQL SERVER版本管控工具source_safe_for_sql_server

    PCB由于业务关系复杂,业务触发一个事件时,可能需与数据库多个表进行关连处理才能拿到数据结果, 而表关连并不是简单的关连,实际是要进行大量数据筛选,逻辑判断,转换等过程...这个过程是复杂的 想一想, ...

  9. PCB MS SQL 排序应用---相邻数据且相同合并处理

    这是一个很有趣SQL数据处理应用,具体需求如下 ERP需要工程将物料编码相邻的编码合并求和BOM用量,巧妙的用到了已有排序号与分组排序号之间的差值求解 示例: 原数据: 要求转换: 实际转换后数据: ...

  10. bzoj 2599(点分治)

    2599: [IOI2011]Race Time Limit: 70 Sec  Memory Limit: 128 MBSubmit: 3642  Solved: 1081[Submit][Statu ...