机器学习---分类(向量机、贝叶斯分类)

利用鸢尾花数据进行数据集分类
1、支持向量机

import numpy as np
from sklearn import *
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.35)
#向量机参数配置
classifier = svm.SVC(kernel='linear',gamma=0.1,decision_function_shape='ovo',C=0.1)
classifier.fit(x_train,y_train.ravel())
print("向量机__输出训练集准确度:",classifier.score(x_train,y_train))
print("向量机__输出测试集准确度:",classifier.score(x_test,y_test))
#画出测试集和训练集图像
fig = plt.figure()
x1 = fig.add_subplot(2,2,1)
x1.plot(x_train,y_train)
x2 = fig.add_subplot(2,2,2)
x2.plot(x_test,y_test)
#(用测试集x_test去预测y_test查看拟合度)
y_hat = classifier.predict(x_test)
classsreport = metrics.classification_report(y_test,y_hat)
#画出测试集和预测集的取值范围
x3 = fig.add_subplot(2,2,3)
x3.plot(y_test,y_hat)
print(classsreport)

结果:

向量机__输出训练集准确度: 0.9587628865979382
向量机__输出测试集准确度: 0.9811320754716981
              precision    recall  f1-score   support

           0       1.00      1.00      1.00        19
           1       1.00      0.95      0.97        19
           2       0.94      1.00      0.97        15

    accuracy                           0.98        53
   macro avg       0.98      0.98      0.98        53
weighted avg       0.98      0.98      0.98        53

机器学习---分类(向量机、贝叶斯分类)_第1张图片2、贝叶斯分类

from sklearn.datasets import load_iris
from sklearn.naive_bayes import GaussianNB
import matplotlib.pyplot as plt
#数据导入
iris = load_iris()
clf = GaussianNB()
#设置分类器
clf.fit(iris.data,iris.target)
#训练分类器
y_pred = clf.predict(iris.data)
#预测
plt.plot(iris.data,iris.target)
print("共有%d个数据,标错了%d个"%(iris.data.shape[0],(iris.target != y_pred).sum()))

结果:

共有150个数据,标错了6个

机器学习---分类(向量机、贝叶斯分类)_第2张图片

你可能感兴趣的:(python,python,机器学习,数据可视化)