# -*- coding: utf-8 -*-
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
import numpy as np
from Perceptron import Perceptron
def plot_decision_regions(X, y, classifier, resolution=0.02):
#画图划线分割
markers = ['s', 'x', 'o', 'v'];
colors= ['red', 'blue', 'lightred', 'gray', 'cyan']
cmap = ListedColormap(colors[:len(np.unique(y))]);
x1_min, x1_max = X[:, 0].min() - 1, X[:, 0].max();
x2_min, x2_max = X[:, 1].min() - 1, X[:, 1].max();
#print(x1_min, x1_max, x2_min, x2_max);
# 根据数据最大最小值构建向量,差值resolution
xx1, xx2 = np.meshgrid(np.arange(x1_min, x1_max, resolution), np.arange(x2_min, x2_max, resolution))
#print(np.arange(x1_min, x1_max, resolution).shape, np.arange(x1_min, x1_max, resolution), xx1.shape, xx1)
z = classifier.predict(np.array([xx1.ravel(), xx2.ravel()]).T);
z = z.reshape(xx1.shape);
plt.contourf(xx1, xx2, z, alpha=0.4, cmap=cmap)
plt.xlim(xx1.min(), xx1.max())
plt.ylim(xx2.min(), xx2.max())
for idx,cl in enumerate(np.unique(y)):
plt.scatter(x=X[y==cl, 0], y=X[y==cl, 1], alpha=0.8, c=cmap(idx), marker=markers[idx], label=cl)
pass
plt.xlabel('花瓣长度');
plt.ylabel('花径长度');
plt.legend(loc='upper left');
plt.show();
pass
# 读取文件
file = './Perceptron/examples.csv';
df = pd.read_csv(file, header=None);
# print(df.head(10))
# 处理第4列表
y = df.loc[0: 100, 4].values;
y = np.where(y == 'Tris-setosa', -1, 1);
# print(y)
# 讲第0和2列取出来分析
X = df.iloc[0: 100, [0, 2]].values;
# print(X)
# 对数据可视化
"""
plt.scatter(X[:5, 0], X[:5, 1], color='red', marker='o', label='setosa'),;
plt.scatter(X[5:10, 0], X[5:10, 1], color='blue', marker='x', label='versicolor');
plt.xlabel('花瓣长度');
plt.ylabel('花径长度');
plt.legend(loc='upper left');
plt.show();
"""
# 训练
ppn = Perceptron(eta=0.1, n_iter=10);
ppn.fit(X, y)
"""
# 训练输出
plt.plot(range(1, len(ppn.errors_) + 1), ppn.errors_, marker='o');
plt.xlabel('Epochs');
plt.ylabel('错误分类次数');
plt.show();
"""
# 绘制分割图
plot_decision_regions(X, y, ppn, resolution=0.02)
机器学习的一些学习代码.zip
需积分: 5 182 浏览量
2024-04-08
17:38:19
上传
评论
收藏 3KB ZIP 举报
生瓜蛋子
- 粉丝: 3828
- 资源: 5678
最新资源
- 【哈工大计算机系统】CSAPP计统大作业
- 音视频对齐python脚本
- Tkinter简易版学生信息管理系统源码+数据库配置文件
- Advanced Sniper Starter kit v4.3.unitypackage
- tensorflow-gpu-2.8.3-cp37-cp37m-win-amd64.whl
- tensorflow-2.8.4-cp37-cp37m-win-amd64.whl
- tensorflow-2.8.3-cp37-cp37m-win-amd64.whl
- 仿微博发贴,评论帖子,回复评论,后端mysql数据库表设计.md
- 618电商活动的Python网页程序+编程知识+技术开发
- 简单的网页重复操作2.25
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈