当前位置: 首页 > news >正文

支持向量机(iris)

代码:

import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn import svm
import numpy as np# 定义每一列的属性
colnames = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'class']
# 读取数据
iris = pd.read_csv('data\\iris.data', names=colnames)# iris.head()是一个pandas库中的函数,用于显示数据集的前几行。默认情况下,它显示前5行数据。
"""sepal-length  sepal-width  petal-length  petal-width        class
0           5.1          3.5           1.4          0.2  Iris-setosa
1           4.9          3.0           1.4          0.2  Iris-setosa
2           4.7          3.2           1.3          0.2  Iris-setosa
3           4.6          3.1           1.5          0.2  Iris-setosa
4           5.0          3.6           1.4          0.2  Iris-setosa
"""
iris.head()# drop():删除行或列
X = iris.drop('class', axis=1)  # 属性值
y = iris['class']   # 类别scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)clf = svm.SVC(kernel='linear')
clf.fit(X_scaled, y)# 随机生成3组测试数据,注意需要归一化处理
test_data = scaler.transform(np.array([[5.1, 3.5, 1.4, 0.2], [6.7, 3.1, 4.7, 1.5], [7.9, 3.8, 6.4, 2.0]]))# 获得模型预测结果
pred = clf.predict(test_data)print(pred)

对代码的解释:

因为iris.data中是这样的:

即前4列为属性,第5列为类别

定义属性与类别:

# 定义每一列的属性
colnames = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'class']

 读取数据,并给数据加上colnames:

# 读取数据
iris = pd.read_csv('data\\iris.data', names=colnames)

print输出一下iris: 

 对于read_csv()方法:

(4条消息) 详解pandas的read_csv方法_小尛玮的博客-CSDN博客

对于head()函数:

# iris.head()是一个pandas库中的函数,用于显示数据集的前几行。默认情况下,它显示前5行数据。
"""sepal-length  sepal-width  petal-length  petal-width        class
0           5.1          3.5           1.4          0.2  Iris-setosa
1           4.9          3.0           1.4          0.2  Iris-setosa
2           4.7          3.2           1.3          0.2  Iris-setosa
3           4.6          3.1           1.5          0.2  Iris-setosa
4           5.0          3.6           1.4          0.2  Iris-setosa
"""
iris.head()

对于drop()函数:

(3条消息) Pandas基本数据交互机制2-drop()方法_朱错错的哒哒哒的博客-CSDN博客

# drop():删除行或列
X = iris.drop('class', axis=1)  # 属性值

'class':去掉属性为class的一行或一列

axis=1:去掉某一行,加上参数axis就是去掉某一列

这行代码的返回值为去掉属性为class的那一列之后的数据集,即所有属性

y = iris['class']   # 类别

这行代码返回值为类别那一列

对于StandardScaler()方法与fit_transform方法

(3条消息) sklearn中StandardScaler()_汽水配辣条的博客-CSDN博客

scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

对于svm()方法

(3条消息) 【机器学习】svm.SVC参数详解_svm.svc中的参数以及作用_Xhfei1224的博客-CSDN博客

clf = svm.SVC(kernel='linear')
clf.fit(X_scaled, y)

预测


# 随机生成3组测试数据,注意需要归一化处理
test_data = scaler.transform(np.array([[5.1, 3.5, 1.4, 0.2], [6.7, 3.1, 4.7, 1.5], [7.9, 3.8, 6.4, 2.0]]))# 获得模型预测结果
pred = clf.predict(test_data)print(pred)

http://www.lryc.cn/news/100878.html

相关文章:

  • 24考研数据结构-第二章:线性表
  • Mybatis 动态 sql 是做什么的?都有哪些动态 sql?能简述动态 sql 的执行原理不?
  • 250_C++_typedef std::function<int(std::vector<int> vtBits)> fnChkSstStt
  • 无涯教程-jQuery - Transfer方法函数
  • openGauss学习笔记-24 openGauss 简单数据管理-模式匹配操作符
  • JAVASE---数据类型与变量
  • IDEA Groovy 脚本一键生成实体类<mybatisplus>
  • 无涯教程-jQuery - Puff方法函数
  • 什么叫前后端分离?为什么需要前后端问题?解决了什么问题?
  • Vector<T> 动态数组(随机访问迭代器)(答案)
  • Istio 故障注入与重试的实验
  • Java设计模式-中介者模式
  • OpenCV实现高斯模糊加水印
  • JMeter 怎么查看 TPS 数据教程,简单易懂
  • 2023年的深度学习入门指南(19) - LLaMA 2源码解析
  • 慕课网Go-2.数组、slice、map、list
  • Django的Rest framework搭建自定义授权登录
  • 01 矩阵(力扣)多源广度优先搜索 JAVA
  • 怎么绘制简爱思维导图?用这个工具绘制很简单
  • EC200U-CN学习(三)
  • 【windows】连接共享打印机提示:0x0000011B
  • 基于“RWEQ+”集成技术在土壤风蚀模拟与风蚀模数估算、变化归因分析中的实践应用及SCI论文撰写
  • Flutter-基础Widget
  • 【数据分析专栏之Python篇】二、Jupyer Notebook安装配置及基本使用
  • ubuntu22.04 DNSSEC(加密DNS服务) configuration
  • Qt 第一讲
  • IDEA 使用 maven 搭建 spring mvc
  • Hi3536网络应用调优
  • spring拦截器 与统一格式
  • leetcode 122. 买卖股票的最佳时机 II