佛山外贸网站建设信息,电子商务网站建设规划论文,网站怎么做下载链接,淘宝客 wordpress主题系列文章目录
机器学习实验一#xff1a;线性回归机器学习实验二#xff1a;决策树模型机器学习实验三#xff1a;支持向量机模型机器学习实验四#xff1a;贝叶斯分类器机器学习实验五#xff1a;集成学习机器学习实验六#xff1a;聚类 文章目录 系列文章目录一、实验…系列文章目录
机器学习实验一线性回归机器学习实验二决策树模型机器学习实验三支持向量机模型机器学习实验四贝叶斯分类器机器学习实验五集成学习机器学习实验六聚类 文章目录 系列文章目录一、实验目的二、实验原理三、实验内容四、实验步骤1. 训练集和测试数据集划分2. 评价分类结果 TP、FN、FP、TN 以及精确率和召回率3. 加入松弛因子后与未加松弛因子之前效果做对比。 五、代码参考总结 一、实验目的
1了解支持向量机基本知识 2掌握 SVM 分类器的设计方法 3学会建立 SVM 分类器来实现分类预测并进行结果分析。
二、实验原理
支持向量机旨在求一个分离超平面。这个超平面使得离它最近的点能够最远。
三、实验内容
使用 Python 读取数据集信息, 使用鸢尾花的花萼sepal和花瓣petal 的长和宽数据并利用 sklearn 训练支持向量机模型随后使用 SVM 实现分类预 测判断样本属于山鸢尾Iris Setosa、变色鸢尾Iris Versicolor还是 维吉尼亚鸢尾Iris Virginica。评价分类结果 TP、FN、FP、TN 以及精确率和 召回率。 加入松弛因子后与未加松弛因子之前效果做对比。
四、实验步骤
1. 训练集和测试数据集划分
导入鸢尾花数据集将数据集按 80%训练集20%测试集的比例进行分割。
2. 评价分类结果 TP、FN、FP、TN 以及精确率和召回率
FN被判定为负样本但事实上是正样本 FP被判定为正样本但事实上是负样本 TN被判定为负样本事实上也是负样本 TP被判定为正样本事实上也是正样本 精确率 Precision针对模型判断出的所有正例即 TP FP而言其中真 正例 TP 占的比例。 Precision TP /( TP FP ) 召回率 Recall针对数据集中的所有正例即 TP FN而言模型正确判 断出的正例 TP 占数据集中所有正例的比例FN 表示被模型误认为是负例但实 际是正例的数据。 Recall TP/( TP FN
3. 加入松弛因子后与未加松弛因子之前效果做对比。
假设样本数为 n原先对样本的分类是yi( ⋅ b) ≥ 1 ( i 1, 2, … , n )则引入松弛因子 ξ ≥ 0后对样本分类的要求变为 yi ( ⋅ b) ≥ 1 − ( i 1, 2, …, n )松弛因子的意义是引入一定的容错性。
五、代码参考
import numpy as np
from sklearn import svm, datasets
from sklearn.model_selection import train_test_split
from sklearn.multiclass import OneVsRestClassifier
from sklearn.preprocessing import label_binarize
iris datasets.load_iris()
X iris.data
y iris.target
random_state np.random.RandomState(0)
n_samples, n_features X.shape
X_train, X_test, y_train, y_test train_test_split(X, y, test_size.2, random_state66)
# 设定参数
classifier OneVsRestClassifier(svm.SVC(C100000, kernellinear, probabilityTrue,
random_staterandom_state))
classifier.fit(X_train, y_train)
y_pred classifier.predict(X_test)
def func(precited, expected):res (precited ^ expected) r np.bincount(res)tp_list (precited expected)fp_list (precited (~expected))tp_list tp_list.tolist()fp_list fp_list.tolist()TP tp_list.count(1)FP fp_list.count(1)TN r[0] - TPFN r[1] - FPRecall TP / (TP FN)Precesion TP / (TP FP)return TP, FP, TN, FN, Recall, Precesion
y_test1 label_binarize(y_test, classes[0, 1, 2])
y_pred1 label_binarize(y_pred, classes[0, 1, 2])
print(y_pred1[..., 0], y_test1[..., 0])
tp, fp, tn, fn, recall, pre func(y_pred1[..., 0], y_test1[..., 0])
recall format(recall, 0.2f)
pre format(pre, 0.2f)
print(ftype1:recall {recall} precision {pre})
tp, fp, tn, fn, recall, pre func(y_pred1[..., 1], y_test1[..., 1])
recall format(recall, 0.2f)
pre format(pre, 0.2f)
print(ftype2:recall {recall} precision {pre})
tp, fp, tn, fn, recall, pre func(y_pred1[..., 2], y_test1[..., 2])
recall format(recall, 0.2f)
pre format(pre, 0.2f)
print(ftype3:recall {recall} precision {pre})修改松弛因子 即修改如下语句中的参数 C classifier OneVsRestClassifier(svm.SVC(C100, kernel‘linear’, probabilityTrue, random_staterandom_state)
总结
以上就是今天要讲的内容机器学习实验三支持向量机模型