随笔9

# -*- coding: utf-8 -*-
'''
花的种类的SVM
'''
from sklearn import svm, datasets
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
import matplotlib.pyplot as plt
import numpy as np


iris = datasets.load_iris()
dat_data = iris.data
dat_label = iris.target
data = []
for x1, x2 in zip(dat_data, dat_label):
    data.append(list(x1))
j = 0
for i in dat_label:
    data[j].append(i)
    j = j+1
print(data)
a = 0
for i in data:
    a = a + 1
print('花的总样本数:{}'.format(a))

'''
split(数据,分割位置,轴(axis)=1(纵向分割) or 0(横向分割))
这里的分割位置是指 0、1、2、3 列为一部分,第 4 列为另一部分进行分割。
当axis = 1 时,按列分割
当axis = 0 时,按行分割
'''
x, y = np.split(data, (4,), axis=1)
# 行取全部,列取前3列,“:3”的意思是指1、2、3列。
x = x[:, :2]
x_trin, x_test, y_trin, y_test = train_test_split(x, y, random_state=np.random.randint(0, 300), train_size=0.6)
'''
参数解释:sklearn.model_selection.train_test_split()
train_data:所要划分的样本特征集

train_target:所要划分的样本结果

test_size:样本占比,如果是整数的话就是样本的数量,如果赋予值的话取其补的结果来计算。

random_state:是随机数的种子。

随机数种子:其实就是该组随机数的编号,在需要重复试验的时候,保证得到一组一样的随机数。
比如你每次都填1,其他参数一样的情况下你得到的随机数组是一样的。但填0或不填,每次都会不一样。
随机数的产生取决于种子,随机数和种子之间的关系遵从以下两个规则:种子不同,产生不同的随机数;种子相同,即使实例不同也产生相同的随机数。
'''

clf = svm.SVC(C=0.8, kernel='rbf', gamma=20, decision_function_shape='ovr')
clf.fit(x_trin, y_trin.ravel())
# print(clf.score(x_trin, y_trin))
y_hat = clf.predict(x_trin)
b = 0
for i in x_trin:
    b = b + 1
print('训练集的总样本数:{}'.format(b))
print('训练集正确分类的样本数:{}'.format(accuracy_score(y_hat, y_trin, normalize=False)))
print('训练集的正确率:{}'.format(accuracy_score(y_hat, y_trin, normalize=True)))

# print(clf.score(x_test, y_test))
y_hat1 = clf.predict(x_test)
c = 0
for i in x_test:
    c = c + 1
print('测试集的总样本数:{}'.format(c))
print('测试集正确分类的样本数:{}'.format(accuracy_score(y_hat1, y_test, normalize=False)))
print('测试集的正确率:{}'.format(accuracy_score(y_hat1, y_test, normalize=True)))



我曾经跨过山和大海,也穿过人山人海,我曾经拥有着的一切,转眼都飘散如烟,我曾经失落失望失掉所有方向,直到看见平凡才是唯一的答案。
——韩寒《平凡之路》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值