支持向量机(iris)

这篇具有很好参考价值的文章主要介绍了支持向量机(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中是这样的:

支持向量机(iris),机器学习,机器学习

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

定义属性与类别:

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

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

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

print输出一下iris: 

支持向量机(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博客文章来源地址https://www.toymoban.com/news/detail-620124.html

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)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【机器学习】支持向量机(上)

    支持向量机作为传统机器学习算法中的霸主,其背后的数学知识是相当复杂且精密的。对于每个学习机器学习的同学而言,理解并掌握支持向量机的思路对于认识和学习其他算法也会起到非常巨大的推动作用。遗憾的是,鲜有博客能真正说清楚它的美妙之处,这也包括一些高

    2024年02月13日
    浏览(52)
  • 机器学习—支持向量机

    在本练习中,我们将使用支持向量机(SVM)来构建垃圾邮件分类器。 在开始练习前,需要 下载如下的文件进行数据上传 : data.tgz -包含本练习中所需要用的数据文件 其中: ex5data1.mat -数据集示例1 ex5data2.mat -数据集示例2 ex5data3.mat -数据集示例 3 spamTrain.mat -垃圾邮件训练集

    2024年02月09日
    浏览(40)
  • 机器学习 -- 支持向量机

    之前尝试用knn算法尝试一个图像识别(给苹果,香蕉分类)的案例,很吃性能且准确率不佳。支持向量机(SVM)是一种广泛应用于分类和回归问题的强大监督学习算法。就很适用于这种场景。 支持向量(Support Vectors) 在支持向量机(SVM)中,支持向量是非常核心的概念。它

    2024年01月25日
    浏览(36)
  • 机器学习-支持向量机SVM

    在本练习中,我们将使用支持向量机(SVM)来构建垃圾邮件分类器。 我们将从一些简单的2D数据集开始使用SVM来查看它们的工作原理。 然后,我们将对一组原始电子邮件进行一些预处理工作,并使用SVM在处理的电子邮件上构建分类器,以确定它们是否为垃圾邮件。 我们要做

    2024年02月12日
    浏览(55)
  • 机器学习——支持向量机SVM

    支持向量机(SVM)是一种二类分类模型,其基本模型是在特征空间上找到最佳的分离超平面使得训练集上正负样本间隔最大,间隔最大使它有别于感知机,支持向量机也可通过核技巧使它成为非线性分类器。支持向量机的学习策略是间隔最大化,可将其转化为一个求解凸二次

    2024年01月17日
    浏览(57)
  • SVM(支持向量机)-机器学习

    支持向量机(Support Vector Machine,SVM) 是一种用于分类和回归分析的监督学习算法 。它属于机器学习中的一类强大而灵活的模型,广泛应用于模式识别、图像分类、自然语言处理等领域。 基本原理: SVM的基本原理是通过找到能够有效分隔不同类别的超平面来进行分类。在二维

    2024年02月03日
    浏览(52)
  • 机器学习模型之支持向量机

    支持向量机(Support Vector Machine,SVM)是一种监督学习算法,用于分类和回归分析。它是由Cortes和Vapnik于1995年提出的。SVM在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。 目录 一、SVM的基本概念: 二、SVM的

    2024年04月12日
    浏览(32)
  • 动手机器学习支持向量机+习题

    非参数化模型,当数据集规模增大时,其参数量也相应变多 希望从这无数个可以分隔两个点集的超平面中,挑选出与任意一点间隔(margin)的最小值最大的平面 对上式来说,当w和b的大小同时变为λ倍时,式中的分母||w||也变为λ倍,这时划分超平面完全不变  定义γ = yi(wx+

    2024年04月09日
    浏览(40)
  • 机器学习_8、支持向量机

    2024年01月23日
    浏览(36)
  • 【机器学习笔记】11 支持向量机

    支 持 向 量 机 是 一 类 按 监 督 学 习 ( supervisedlearning)方式对数据进行二元分类的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane) 。与逻辑回归和神经网络相比,支持向量机,在学习复杂的非线性方程时

    2024年02月19日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包