内容:

非线性可分支持向量机模型
        分别使用线性核﹑多项式核与高斯核对lris 数据集的2/3数据训练支持向量机,剩余1/3数据进行测试,计算正确率。 分别使用线性核、多项式核与高斯核对lris数据集的2/3数据训练支持向量机,剩余1/3数据进行测试,计算正确率。

数据集(150)

具体数据如下(如果不能运行,尝试在末尾加回车)

5.1  3.5 1.4 0.2 1
4.9 3   1.4 0.2 1
4.7 3.2 1.3 0.2 1
4.6 3.1 1.5 0.2 1
5   3.6 1.4 0.2 1
5.4 3.9 1.7 0.4 1
4.6 3.4 1.4 0.3 1
5   3.4 1.5 0.2 1
4.4 2.9 1.4 0.2 1
4.9 3.1 1.5 0.1 1
5.4 3.7 1.5 0.2 1
4.8 3.4 1.6 0.2 1
4.8 3   1.4 0.1 1
4.3 3   1.1 0.1 1
5.8 4   1.2 0.2 1
5.7 4.4 1.5 0.4 1
5.4 3.9 1.3 0.4 1
5.1 3.5 1.4 0.3 1
5.7 3.8 1.7 0.3 1
5.1 3.8 1.5 0.3 1
5.4 3.4 1.7 0.2 1
5.1 3.7 1.5 0.4 1
4.6 3.6 1   0.2 1
5.1 3.3 1.7 0.5 1
4.8 3.4 1.9 0.2 1
5   3   1.6 0.2 1
5   3.4 1.6 0.4 1
5.2 3.5 1.5 0.2 1
5.2 3.4 1.4 0.2 1
4.7 3.2 1.6 0.2 1
4.8 3.1 1.6 0.2 1
5.4 3.4 1.5 0.4 1
5.2 4.1 1.5 0.1 1
5.5 4.2 1.4 0.2 1
4.9 3.1 1.5 0.1 1
5   3.2 1.2 0.2 1
5.5 3.5 1.3 0.2 1
4.9 3.1 1.5 0.1 1
4.4 3   1.3 0.2 1
5.1 3.4 1.5 0.2 1
5   3.5 1.3 0.3 1
4.5 2.3 1.3 0.3 1
4.4 3.2 1.3 0.2 1
5   3.5 1.6 0.6 1
5.1 3.8 1.9 0.4 1
4.8 3   1.4 0.3 1
5.1 3.8 1.6 0.2 1
4.6 3.2 1.4 0.2 1
5.3 3.7 1.5 0.2 1
5   3.3 1.4 0.2 1
7   3.2 4.7 1.4 2
6.4 3.2 4.5 1.5 2
6.9 3.1 4.9 1.5 2
5.5 2.3 4   1.3 2
6.5 2.8 4.6 1.5 2
5.7 2.8 4.5 1.3 2
6.3 3.3 4.7 1.6 2
4.9 2.4 3.3 1   2
6.6 2.9 4.6 1.3 2
5.2 2.7 3.9 1.4 2
5   2   3.5 1   2
5.9 3   4.2 1.5 2
6   2.2 4   1   2
6.1 2.9 4.7 1.4 2
5.6 2.9 3.6 1.3 2
6.7 3.1 4.4 1.4 2
5.6 3   4.5 1.5 2
5.8 2.7 4.1 1   2
6.2 2.2 4.5 1.5 2
5.6 2.5 3.9 1.1 2
5.9 3.2 4.8 1.8 2
6.1 2.8 4   1.3 2
6.3 2.5 4.9 1.5 2
6.1 2.8 4.7 1.2 2
6.4 2.9 4.3 1.3 2
6.6 3   4.4 1.4 2
6.8 2.8 4.8 1.4 2
6.7 3   5   1.7 2
6   2.9 4.5 1.5 2
5.7 2.6 3.5 1   2
5.5 2.4 3.8 1.1 2
5.5 2.4 3.7 1   2
5.8 2.7 3.9 1.2 2
6   2.7 5.1 1.6 2
5.4 3   4.5 1.5 2
6   3.4 4.5 1.6 2
6.7 3.1 4.7 1.5 2
6.3 2.3 4.4 1.3 2
5.6 3   4.1 1.3 2
5.5 2.5 4   1.3 2
5.5 2.6 4.4 1.2 2
6.1 3   4.6 1.4 2
5.8 2.6 4   1.2 2
5   2.3 3.3 1   2
5.6 2.7 4.2 1.3 2
5.7 3   4.2 1.2 2
5.7 2.9 4.2 1.3 2
6.2 2.9 4.3 1.3 2
5.1 2.5 3   1.1 2
5.7 2.8 4.1 1.3 2
6.3 3.3 6   2.5 3
5.8 2.7 5.1 1.9 3
7.1 3   5.9 2.1 3
6.3 2.9 5.6 1.8 3
6.5 3   5.8 2.2 3
7.6 3   6.6 2.1 3
4.9 2.5 4.5 1.7 3
7.3 2.9 6.3 1.8 3
6.7 2.5 5.8 1.8 3
7.2 3.6 6.1 2.5 3
6.5 3.2 5.1 2   3
6.4 2.7 5.3 1.9 3
6.8 3   5.5 2.1 3
5.7 2.5 5   2   3
5.8 2.8 5.1 2.4 3
6.4 3.2 5.3 2.3 3
6.5 3   5.5 1.8 3
7.7 3.8 6.7 2.2 3
7.7 2.6 6.9 2.3 3
6   2.2 5   1.5 3
6.9 3.2 5.7 2.3 3
5.6 2.8 4.9 2   3
7.7 2.8 6.7 2   3
6.3 2.7 4.9 1.8 3
6.7 3.3 5.7 2.1 3
7.2 3.2 6   1.8 3
6.2 2.8 4.8 1.8 3
6.1 3   4.9 1.8 3
6.4 2.8 5.6 2.1 3
7.2 3   5.8 1.6 3
7.4 2.8 6.1 1.9 3
7.9 3.8 6.4 2   3
6.4 2.8 5.6 2.2 3
6.3 2.8 5.1 1.5 3
6.1 2.6 5.6 1.4 3
7.7 3   6.1 2.3 3
6.3 3.4 5.6 2.4 3
6.4 3.1 5.5 1.8 3
6   3   4.8 1.8 3
6.9 3.1 5.4 2.1 3
6.7 3.1 5.6 2.4 3
6.9 3.1 5.1 2.3 3
5.8 2.7 5.1 1.9 3
6.8 3.2 5.9 2.3 3
6.7 3.3 5.7 2.5 3
6.7 3   5.2 2.3 3
6.3 2.5 5   1.9 3
6.5 3   5.2 2   3
6.2 3.4 5.4 2.3 3
5.9 3   5.1 1.8 3

代码:

有不对的请多指正

实在不想写了就来这看看吧~~~

import math  # 数学
import random  # 随机
import numpy as np
import matplotlib.pyplot as pltdef zhichi_w(zhichi, xy, a):  # 计算更新 ww = [0, 0]if len(zhichi) == 0:  # 初始化的0return wfor i in zhichi:w[0] += a[i] * xy[0][i] * xy[2][i]  # 更新ww[1] += a[i] * xy[1][i] * xy[2][i]return wdef zhichi_b(zhichi, xy, a):  # 计算更新 bb = 0if len(zhichi) == 0:  # 初始化的0return 0for s in zhichi:  # 对任意的支持向量有 ysf(xs)=1 所有支持向量求解平均值sum = 0for i in zhichi:sum += a[i] * xy[2][i] * (xy[0][i] * xy[0][s] + xy[1][i] * xy[1][s])b += 1 / xy[2][s] - sumreturn b / len(zhichi)def SMO(xy, m):a = [0.0] * len(xy[0])  # 拉格朗日乘子zhichi = set()  # 支持向量下标loop = 1  # 循环标记(符合KKT)w = [0, 0]  # 初始化 wb = 0  # 初始化 bwhile loop:loop += 1if loop == 150:print("达到早停标准")print("循环了:", loop, "次")loop = 0break# 初始化=========================================fx = []  # 储存所有的fxyfx = []  # 储存所有yfx-1的值Ek = []  # Ek,记录fx-y用于启发式搜索E_ = -1  # 贮存最大偏差,减少计算a1 = 0  # SMO  a1a2 = 0  # SMO  a2# 初始化结束======================================# 寻找a1,a2======================================for i in range(len(xy[0])):  # 计算所有的 fx yfx-1 Ekfx.append(w[0] * xy[0][i] + w[1] * xy[1][i] + b)  # 计算 fx=wx+byfx.append(xy[2][i] * fx[i] - 1)  # 计算 yfx-1Ek.append(fx[i] - xy[2][i])  # 计算 fx-yif i in zhichi:  # 之前看过的不看了,防止重复找某个acontinueif yfx[i] <= yfx[a1]:a1 = i  # 得到偏离最大位置的下标(数值最小的)if yfx[a1] >= 0:  # 最小的也满足KKTprint("循环了:", loop, "次")loop = 0  # 循环标记(符合KKT)置零(没有用到)breakfor i in range(len(xy[0])):  # 遍历找间隔最大的a2if i == a1:  # 如果是a1,跳过continueEi = abs(Ek[i] - Ek[a1])  # |Eki-Eka1|if Ei < E_:  # 找偏差E_ = Ei  # 储存偏差的值a2 = i  # 储存偏差的下标# 寻找a1,a2结束===================================zhichi.add(a1)  # a1录入支持向量zhichi.add(a2)  # a2录入支持向量# 分析约束条件=====================================# c=a1*y1+a2*y2c = a[a1] * xy[2][a1] + a[a2] * xy[2][a2]  # 求出c# n=K11+k22-2*k12if m == "xianxinghe":  # 线性核n = xy[0][a1] ** 2 + xy[1][a1] ** 2 + xy[0][a2] ** 2 + xy[1][a2] ** 2 - 2 * (xy[0][a1] * xy[0][a2] + xy[1][a1] * xy[1][a2])elif m == "duoxiangshihe":  # 多项式核(这里是二次)n = (xy[0][a1] ** 2 + xy[1][a1] ** 2) ** 2 + (xy[0][a2] ** 2 + xy[1][a2] ** 2) ** 2 - 2 * (xy[0][a1] * xy[0][a2] + xy[1][a1] * xy[1][a2]) ** 2else:  # 高斯核  取 2σ^2 = 1n = 2 * math.exp(-1) - 2 * math.exp(-((xy[0][a1] - xy[0][a2]) ** 2 + (xy[1][a1] - xy[1][a2]) ** 2))# 确定a1的可行域=====================================if xy[2][a1] == xy[2][a2]:L = max(0.0, a[a1] + a[a2] - 0.5)  # 下界H = min(0.5, a[a1] + a[a2])  # 上界else:L = max(0.0, a[a1] - a[a2])  # 下界H = min(0.5, 0.5 + a[a1] - a[a2])  # 上界if n > 0:a1_New = a[a1] - xy[2][a1] * (Ek[a1] - Ek[a2]) / n  # a1_New = a1_old-y1(e1-e2)/n# print("x1=",xy[0][a1],"y1=",xy[1][a1],"z1=",xy[2][a1],"x2=",xy[0][a2],"y2=",xy[1][a2],"z2=",xy[2][a2],"a1_New=",a1_New)# 越界裁剪============================================================if a1_New >= H:a1_New = Helif a1_New <= L:a1_New = Lelse:a1_New = min(H, L)# 参数更新=======================================a[a2] = a[a2] + xy[2][a1] * xy[2][a2] * (a[a1] - a1_New)  # a2更新a[a1] = a1_New  # a1更新w = zhichi_w(zhichi, xy, a)  # 更新wb = zhichi_b(zhichi, xy, a)  # 更新b# print("W=", w, "b=", b, "zhichi=", zhichi, "a1=", a[a1], "a2=", a[a2])# 标记支持向量======================================for i in zhichi:if a[i] == 0:  # 选了,但值仍为0loop = loop + 1e = 'silver'else:if xy[2][i] == 1:e = 'b'else:e = 'r'plt.scatter(x1[0][i], x1[1][i], c='none', s=100, linewidths=1, edgecolor=e)print("支持向量数为:", len(zhichi), "\na为零支持向量:", loop)print("有用向量数:", len(zhichi) - loop)# 返回数据 w b =======================================return [w, b]def panduan(xyz, w_b1,w_b2):c = 0for i in range(len(xyz[0])):if (xyz[0][i] * w_b1[0][0] + xyz[1][i] * w_b1[0][1] + w_b1[1]) * xyz[2][i][0] < 0:c = c + 1continueif (xyz[0][i] * w_b2[0][0] + xyz[1][i] * w_b2[0][1] + w_b2[1]) * xyz[2][i][1] < 0:c = c + 1continuereturn (1 - c / len(xyz[0])) * 100def huitu(x1,x2,wb1,wb2,name):x = [x1[0][:],x1[1][:],x1[2][:]]for i in range(len(x[2])):  # 对训练集‘上色’if x[2][i] == [1, 1]:x[2][i] = 'r'  # 训练集  1  1 红色elif x[2][i] == [-1, 1]:x[2][i] = 'g'  # 训练集 -1  1 绿色else:x[2][i] = 'b'  # 训练集 -1 -1 蓝色plt.scatter(x[0], x[1], c=x[2], alpha=0.8)  # 绘点训练集x = [x2[0][:],x2[1][:],x2[2][:]]for i in range(len(x[2])):  # 对测试集‘上色’if x[2][i] == [1, 1]:x[2][i] = 'orange'  # 训练集  1   1 橙色elif x[2][i] == [-1, 1]:x[2][i] = 'y'  # 训练集 -1   1 黄色else:x[2][i] = 'm'  # 训练集 -1  -1 紫色plt.scatter(x[0], x[1], c=x[2], alpha=0.8)  # 绘点测试集plt.xlabel('x')  # x轴标签plt.ylabel('y')  # y轴标签plt.title(name)  # 标题xl = np.arange(min(x[0]), max(x[0]), 0.1)  # 绘制分类线一yl = (-wb1[0][0] * xl - wb1[1]) / wb1[0][1]plt.plot(xl, yl, 'r')xl = np.arange(min(x[0]), max(x[0]), 0.1)  # 绘制分类线二yl = (-wb2[0][0] * xl - wb2[1]) / wb2[0][1]plt.plot(xl, yl, 'b')# 主函数=======================================================
f = open('Iris.txt', 'r')  # 读文件
x = [[], [], [], [], []]  # 花朵属性,(0,1,2,3),花朵种类
while 1:yihang = f.readline()  # 读一行if len(yihang) <= 1:  # 读到末尾结束breakfenkai = yihang.split('\t')  # 按\t分开for i in range(4):  # 分开的四个值x[i].append(eval(fenkai[i]))  # 化为数字加到x中if (eval(fenkai[4]) == 1):  # 将标签化为向量形式x[4].append([1, 1])else:if (eval(fenkai[4]) == 2):x[4].append([-1, 1])else:x[4].append([-1, -1])print('数据集=======================================================')
print(len(x[0]))  # 数据大小
# 选择数据===================================================
shuxing1 = eval(input("选取第一个属性:"))
if shuxing1 < 0 or shuxing1 > 4:print("无效选项,默认选择第1项")shuxing1 = 1
shuxing2 = eval(input("选取第一个属性:"))
if shuxing2 < 0 or shuxing2 > 4 or shuxing1 == shuxing2:print("无效选项,默认选择第2项")shuxing2 = 2
# 生成数据集==================================================
lt = list(range(150))  # 得到一个顺序序列
random.shuffle(lt)  # 打乱序列
x1 = [[], [], []]  # 初始化x1
x2 = [[], [], []]  # 初始化x2
for i in lt[0:100]:  # 截取部分做训练集x1[0].append(x[shuxing1][i])  # 加上数据集x属性x1[1].append(x[shuxing2][i])  # 加上数据集y属性x1[2].append(x[4][i])  # 加上数据集c标签
for i in lt[100:150]:  # 截取部分做测试集x2[0].append(x[shuxing1][i])  # 加上数据集x属性x2[1].append(x[shuxing2][i])  # 加上数据集y属性x2[2].append(x[4][i])  # 加上数据集c标签
print('\n\n开始训练==============================================')
print('\n线性核==============================================')
# 计算 w b============================================
plt.figure(1)  # 第一张画布
x = [x1[0][:], x1[1][:], []]  # 第一次分类
for i in x1[2]:x[2].append(i[0])  # 加上数据集标签
wb1 = SMO(x,"xianxinghe")
x = [x1[0][:], x1[1][:], []]  # 第二次分类
for i in x1[2]:x[2].append(i[1])  # 加上数据集标签
wb2 = SMO(x,"xianxinghe")
print("w1为:", wb1[0], " b1为:", wb1[1])
print("w2为:", wb2[0], " b2为:", wb2[1])
# 计算正确率===========================================
print("训练集上的正确率为:", panduan(x1, wb1,wb2), "%")
print("测试集上的正确率为:", panduan(x2, wb1,wb2), "%")
# 绘图 ===============================================
# 圈着的是曾经选中的值,灰色的是选中但更新为0
huitu(x1,x2,wb1,wb2,"xianxinghe")
print('\n多项式核============================================')
# 计算 w b============================================
plt.figure(2)  # 第二张画布
x = [x1[0][:], x1[1][:], []]  # 第一次分类
for i in x1[2]:x[2].append(i[0])  # 加上数据集标签
wb1 = SMO(x,"duoxiangshihe")
x = [x1[0][:], x1[1][:], []]  # 第二次分类
for i in x1[2]:x[2].append(i[1])  # 加上数据集标签
wb2 = SMO(x,"duoxiangshihe")
print("w1为:", wb1[0], " b1为:", wb1[1])
print("w2为:", wb2[0], " b2为:", wb2[1])
# 计算正确率===========================================
print("训练集上的正确率为:", panduan(x1, wb1,wb2), "%")
print("测试集上的正确率为:", panduan(x2, wb1,wb2), "%")
# 绘图 ===============================================
# 圈着的是曾经选中的值,灰色的是选中但更新为0
huitu(x1,x2,wb1,wb2,"duoxiangshihe")
print('\n高斯核==============================================')
# 计算 w b============================================
plt.figure(3)  # 第三张画布
x = [x1[0][:], x1[1][:], []]  # 第一次分类
for i in x1[2]:x[2].append(i[0])  # 加上数据集标签
wb1 = SMO(x,"gaosihe")
x = [x1[0][:], x1[1][:], []]  # 第二次分类
for i in x1[2]:x[2].append(i[1])  # 加上数据集标签
wb2 = SMO(x,"gaosihe")
print("w1为:", wb1[0], " b1为:", wb1[1])
print("w2为:", wb2[0], " b2为:", wb2[1])
# 计算正确率===========================================
print("训练集上的正确率为:", panduan(x1, wb1,wb2), "%")
print("测试集上的正确率为:", panduan(x2, wb1,wb2), "%")
# 绘图 ===============================================
# 圈着的是曾经选中的值,灰色的是选中但更新为0
huitu(x1,x2,wb1,wb2,"gaosihe")
#显示所有图
plt.show()  # 显示

结果实例:


选取 0 1

数据集=======================================================
150
选取第一个属性:0
选取第一个属性:1开始训练==============================================线性核==============================================
循环了: 59 次
支持向量数为: 58
a为零支持向量: 43
有用向量数: 15
循环了: 81 次
支持向量数为: 80
a为零支持向量: 37
有用向量数: 43
w1为: [-1.2015577886380138, 1.0472346551913316]  b1为: 3.193887811107239
w2为: [-0.9046180342303862, -0.050401017033139706]  b2为: 5.818677047436661
训练集上的正确率为: 84.0 %
测试集上的正确率为: 80.0 %多项式核============================================
达到早停标准
循环了: 150 次
支持向量数为: 70
a为零支持向量: 2
有用向量数: 68
达到早停标准
循环了: 150 次
支持向量数为: 100
a为零支持向量: 2
有用向量数: 98
w1为: [-1.5323422583266884, -0.6451163863274796]  b1为: 10.19605818386737
w2为: [-0.32703052684507555, -0.07341379665570845]  b2为: 2.474197513122665
训练集上的正确率为: 55.00000000000001 %
测试集上的正确率为: 60.0 %高斯核==============================================
循环了: 44 次
支持向量数为: 43
a为零支持向量: 37
有用向量数: 6
循环了: 66 次
支持向量数为: 65
a为零支持向量: 37
有用向量数: 28
w1为: [-1.4000000000000004, 1.2000000000000002]  b1为: 3.821860465116281
w2为: [-1.2206265744055393, -0.29455424617379977]  b2为: 8.488342156179229
训练集上的正确率为: 84.0 %
测试集上的正确率为: 80.0 %


选取 1 3


数据集=======================================================
150
选取第一个属性:1
选取第一个属性:3开始训练==============================================线性核==============================================
循环了: 67 次
支持向量数为: 66
a为零支持向量: 50
有用向量数: 16
循环了: 44 次
支持向量数为: 43
a为零支持向量: 17
有用向量数: 26
w1为: [0.5633951571969109, -1.042348513330865]  b1为: -0.9195155744439709
w2为: [-0.06277727278771472, -2.4362648813243806]  b2为: 4.185161300086744
训练集上的正确率为: 97.0 %
测试集上的正确率为: 94.0 %多项式核============================================
达到早停标准
循环了: 150 次
支持向量数为: 88
a为零支持向量: 19
有用向量数: 69
达到早停标准
循环了: 150 次
支持向量数为: 39
a为零支持向量: 4
有用向量数: 35
w1为: [0.21771014101070363, -0.5387711292789139]  b1为: -0.3383609523351082
w2为: [-0.010052537823134533, -0.3832264577071416]  b2为: 0.6811197228851011
训练集上的正确率为: 96.0 %
测试集上的正确率为: 94.0 %高斯核==============================================
循环了: 45 次
支持向量数为: 44
a为零支持向量: 36
有用向量数: 8
达到早停标准
循环了: 150 次
支持向量数为: 44
a为零支持向量: 42
有用向量数: 2
w1为: [0.9855920219400248, -1.21694723510404]  b1为: -2.034100651391037
w2为: [0.19999999999999996, -0.9500000000000001]  b2为: 1.0344318181818182
训练集上的正确率为: 97.0 %
测试集上的正确率为: 94.0 %

可以对所有属性组合。

可以看出,多项式核一定有一些错误,,,希望能够有人指正

python非线性可分支持向量机模型(实现iris分类)相关推荐

  1. 【统计学习方法】线性可分支持向量机对鸢尾花(iris)数据集进行二分类

    本文摘要 · 理论来源:[统计学习方法]第七章 SVM · 技术支持:pandas(读csv).numpy.sklearn.svm.svm思想.matplotlib.pyplot(绘图) · 代码目的 ...

  2. 支持向量机(一)(线性可分支持向量机和硬间隔最大化)

    文章目录 线性可分支持向量机 函数间隔和几何间隔 间隔最大化 学习的对偶算法 References 支持向量机学习方法包含构建由简至繁的模型:线性可分支持向量机.线性支持向量机以及非线性支持向量机.当 ...

  3. SVM详解(一)线性可分支持向量机与硬间隔最大化

    文章目录 1. 引言 2. 函数间隔与几何间隔 3. 间隔最大化 4. 最大间隔分离超平面的存在唯一性 5. 支持向量和间隔边界 6. 学习的对偶算法 1. 引言 我们在介绍感知机的时候知道,对于线性 ...

  4. python支持向量机回归_用Python实现支持向量机并处理Iris数据集

    SVM全称是Support Vector Machine,即支持向量机,是一种监督式学习算法.它主要应用于分类问题,通过改进代码也可以用作回归.所谓支持向量就是距离分隔面最近的向量.支持向量机就是要确 ...

  5. 【机器学习基础】数学推导+纯Python实现机器学习算法10:线性不可分支持向量机...

    Python机器学习算法实现 Author:louwill 本节笔者和大家讨论支持向量机的最后一种情况--非线性支持向量机.前面两节我们探讨了数据样例是完全线性可分情况和近似线性可分情况下的支持向量机 ...

  6. 实验二:用python实现SVM支持向量机并对鸢尾花数据集分类

    实验二:SVM支持向量机 1. 实验内容: (1)用你熟知的语言(尽量使用python)实现支持向量机的算法,并在给定的数据集上训练. (2)在测试集上用训练好的支持向量机进行测试,并将预测结果以cs ...

  7. 线性支持向量机、线性可分支持向量机、非线性支持向量机是怎么区分的?

    SVM(Support Vector Machine)是一种二类分类模型. 它的基本模型是定义在特征空间上的间隔最大的线性分类器. 支持向量就是最大间隔或者分割超平面上的那几个临界点,具体入下图所示: ...

  8. 统计学习方法笔记(五)-线性可分支持向量机原理及python实现

    支持向量机 支持向量机 线性可分支持向量机 最大间隔法 代码实现 案例地址 支持向量机 支持向量机(support vector machines,SVM)是一种二分类模型,它的基本类型是定义在特征空 ...

  9. 【机器学习基础】数学推导+纯Python实现机器学习算法8-9:线性可分支持向量机和线性支持向量机...

    Python机器学习算法实现 Author:louwill 前面两讲我们对感知机和神经网络进行了介绍.感知机作为一种线性分类模型,很难处理非线性问题.为了处理非线性的情况,在感知机模型的基础上有了两个 ...

最新文章

  1. 推荐:微服务架构的深度解析!
  2. python清空字典保留变量方法_python学习day06--02字典增删差改以及字符串的一些方法...
  3. 项目上线与LOG记录
  4. 大地发生了变化写具体_小学语文三年级下册期末检测卷 (2)
  5. 为什么需要非线性激活函数
  6. 关于今天写Flex视频循环播放所出现的sdk问题
  7. PWA(Progressive Web App)入门系列:Fetch Request Headers Response Body
  8. sql无法写入mysql_无法通过写入mysql数据库pandas.to\u sql使用sqlalchemy,但不能通过没有pandas的sqlalchemy...
  9. Apache基金会正式宣布新一代分布式对象存储Ozone成为顶级项目
  10. Support Vector Machine (3) : 再谈泛化误差(Generalization Error)
  11. 四款常见IT自动化运维工具简单介绍-行云管家
  12. Unity视频组件Video Player的介绍
  13. SQL的连接查询——内连接、左连接、右连接、自连接(重要)
  14. Vue人资中台--打包上线
  15. Springboot统一异常处理并保存到数据库
  16. python异步爬虫教程_tornado异步请求非阻塞|python爬虫|python入门|python教程
  17. 计算机数学与高中数学衔接,浅谈大学数学与高中数学的衔接.doc
  18. 微信和 QQ 终于可以互通了
  19. 回车、换行、空格的ASCII码值
  20. DSN,W-DSN文献资料整理

热门文章

  1. ESP32S3系列--FLASH及PSRAM配置
  2. 【地图导航】3D地图软件是如何做路径规划的?为什么准确率这么高
  3. 怎么调用计算机cad,CAD电脑版怎么使用教程
  4. js中的“...”三个点
  5. 程序员的职场潜意识Top10
  6. mybatis中count(*)与count (*)的区别
  7. 战神笔记本电脑自带access吗_战神GX9系列超享windows10搭载微软office2016
  8. 山东科技大学计算机学院奖学金,山东科技大学:一份特殊“奖学金”
  9. 李迅雷+趋势的力量+K型分化时代如何赢取超额收益
  10. 资产监测设备帮助提升莴苣养殖的产量