需要源码请点赞关注收藏后评论区留言私信~~~
一、支持向量机SVM
算法原理
支持向量机(Support Vetor Machine,SVM)是一种对线性和非线性数据进行分类的方法。SVM 使用一种非线性映射,把原始训练数据映射到较高的维上,在新的维上,搜索最佳分离超平面
SVM可分类为三类:线性可分(linear SVM in linearly separable case)的线性SVM、线性不可分的线性SVM、非线性(nonlinear)SVM
SVM可以用于数值预测和分类。对于数据非线性可分的情况,通过扩展线性SVM的方法,得到非线性的SVM,即采用非线性映射把输入数据变换到较高维空间,在新的空间搜索分离超平面
SVM的主要目标是找到最佳超平面,以便在不同类的数据点之间进行正确分类。超平面的维度等于输入特征的数量减去1。图11-3显示了分类的最佳超平面和支持向量(实心的数据样本)
利用SVM对iris数据集分类
结果如下
部分代码如下
import numpy as np from sklearn import svm from sklearn import datasets from sklearn import metrics from sklearn import model_selection import matplotlib.pyplot as plt iris = datasets.load_iris() x, y = iris.data,iris.target x_train, x_test, y_train, y_test = model_selection.train_test_split(x, y, random_state = 1, test_size = 0.2) classifier=svm.SVC(kernel='linear',gamma=0.1,decision_function_shape='ovo',C=0.1) classifier.fit(x_train, y_train.ravel()) print("SVM-输出训练集的准确率为:", classifier.score(x_train, y_train)) print("SVM-输出测.predict(x_test) classreport = metrics.classification_report(y_test,y_hat) print(classreport)
二、朴素贝叶斯分类
1. 算法原理
贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理(Bayes theorem)为基础,采用了概率推理方法
算法示例:对iris数据集进行朴素贝叶斯分类
Scikit-learn模块中有Naïve Bayes子模块,包含了各种贝叶斯算法。利用贝叶斯分类器时首先设置分类器,然后利用训练样本进行训练和分类
结果如下
from sklearn.datasets import load_iris from sklearn.naive_bayes import GaussianNB iris = load_iris() clf = GaussianNB()#设置分类器 clf.fit(iris.data,iris.target)#训练分类器 y_pred = clf.predict(iris.data)#预测 print("Number of mislabeled points out of %d points:%d" %(iris.data.shape[0],(iris.target != y_pred).sum()))
创作不易 觉得有帮助请点赞关注收藏~~~