写一个用python实现感知机并对鸢尾花数据集分类的代码并打印出它的结果与可视化
时间: 2024-11-03 18:18:22 浏览: 16
感知机是一种简单的监督学习模型,常用于二分类任务。以下是使用Python(sklearn库)实现感知机对鸢尾花(Iris)数据集分类的一个示例:
```python
# 导入所需的库
from sklearn import datasets
from sklearn.linear_model import Perceptron
import matplotlib.pyplot as plt
# 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data[:, :2] # 我们只取前两个特征进行简化二分类
y = iris.target
# 拆分训练集和测试集
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 初始化感知机模型
perceptron = Perceptron(max_iter=50, tol=None) # 设置迭代次数
# 训练模型
perceptron.fit(X_train, y_train)
# 预测测试集
predictions = perceptron.predict(X_test)
# 打印混淆矩阵
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, predictions)
print("Confusion Matrix:\n", cm)
# 可视化结果
plt.figure(figsize=(6, 6))
for i in range(3):
indices = (predictions == i)
plt.scatter(X_test[indices, 0], X_test[indices, 1],
c=['r', 'g', 'b'][i], label=f"Iris-{i+1}")
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.legend(loc="upper left")
plt.title('Perceptron Classification Results')
plt.show()
阅读全文