基于支持向量机的鸢尾花分类python代码
时间: 2023-10-04 14:13:52 浏览: 119
当然可以!以下是基于支持向量机的鸢尾花分类Python代码示例:
```python
import pandas as pd
import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
# 加载鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 定义支持向量机模型
svm = SVC(kernel='linear', C=1.0, random_state=42)
# 训练模型
svm.fit(X_train, y_train)
# 预测测试集
y_pred = svm.predict(X_test)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)
```
运行上述代码后,即可得到鸢尾花分类的准确率。希望能帮助到您!
相关问题
【SVM分类】基于支持向量机实现数据分类python代码
在Python中,我们可以使用scikit-learn库来实现支持向量机(SVM)分类。下面是一个简单的例子,展示了如何使用线性核SVM对鸢尾花数据集(Iris dataset)进行分类:
```python
# 导入所需的库
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
# 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data
y = iris.target
# 数据预处理(标准化)
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)
# 创建SVM模型,选择线性核函数
svm_model = SVC(kernel='linear')
# 训练模型
svm_model.fit(X_train, y_train)
# 预测测试集
y_pred = svm_model.predict(X_test)
# 计算并打印准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy * 100}%")
# 示例代码完毕 -- 相关问题--
tensorflow支持向量机鸢尾花分类
TensorFlow是一个广泛使用的开源机器学习框架,它不仅支持深度学习,也包括传统的机器学习算法。支持向量机(SVM)是一种监督学习模型,在许多分类任务中非常有效,尤其是对于小规模高维数据集,如鸢尾花(Iris)数据集。
在TensorFlow中,你可以使用tf.estimator API或者直接操作底层的张量来进行SVM分类。以下是使用tf.estimator库简化版的例子:
```python
import tensorflow as tf
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 加载鸢尾花数据
iris = load_iris()
X, y = iris.data, iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 定义特征列和SVM Estimator
feature_columns = [tf.feature_column.numeric_column('features', shape=(4,))]
estimator = tf.estimator.LinearClassifier(feature_columns=feature_columns, model_dir='svm_model')
# 训练模型
estimator.train(input_fn=lambda: tf.estimator.inputs.numpy_input_fn(x={"features": X_train}, y=y_train, num_epochs=None, shuffle=True))
# 预测
predictions = estimator.predict(input_fn=lambda: tf.estimator.inputs.numpy_input_fn(x={"features": X_test}, num_epochs=1, shuffle=False))
# 评估性能
metrics = estimator.evaluate(input_fn=lambda: tf.estimator.inputs.numpy_input_fn(x={"features": X_test}, y=y_test, num_epochs=1, shuffle=False))
```
阅读全文