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

汉字对比

import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.svm import SVC
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
from sklearn.datasets import make_classification

-------------------------- 1. 模拟手写汉字数据集(模拟"一到十、年月日"共13个汉字) --------------------------

说明:实际场景中可替换为真实手写汉字数据集(如HWDB1.0),这里用模拟数据保证代码可运行

特征数模拟手写汉字图像展平后的维度(28x28=784),样本数1300(每个汉字100个样本)

X, y = make_classification(
n_samples=1300, # 13个汉字 × 100个样本
n_features=784, # 模拟28x28手写汉字图像展平
n_informative=200,
n_redundant=0,
n_classes=13, # 13个目标汉字:一、二、三、四、五、六、七、八、九、十、年、月、日
random_state=42
)

划分训练集和测试集(7:3)

X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.3, random_state=42, stratify=y
)

特征标准化(提升算法性能)

scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

-------------------------- 2. 定义并训练多种识别算法 --------------------------

算法1:K近邻(KNN)

knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(X_train_scaled, y_train)
knn_pred = knn.predict(X_test_scaled)
knn_acc = accuracy_score(y_test, knn_pred)

算法2:支持向量机(SVM)

svm = SVC(kernel='rbf', random_state=42)
svm.fit(X_train_scaled, y_train)
svm_pred = svm.predict(X_test_scaled)
svm_acc = accuracy_score(y_test, svm_pred)

算法3:随机森林(Random Forest)

rf = RandomForestClassifier(n_estimators=100, random_state=42)
rf.fit(X_train_scaled, y_train)
rf_pred = rf.predict(X_test_scaled)
rf_acc = accuracy_score(y_test, rf_pred)

-------------------------- 3. 结果可视化(柱状图) --------------------------

设置中文字体(避免乱码)

plt.rcParams['font.sans-serif'] = ['SimHei'] # 黑体
plt.rcParams['axes.unicode_minus'] = False # 解决负号显示问题

准备绘图数据

algorithms = ['K近邻(KNN)', '支持向量机(SVM)', '随机森林(RF)']
accuracies = [knn_acc, svm_acc, rf_acc]
colors = ['#1f77b4', '#ff7f0e', '#2ca02c']

绘制柱状图

plt.figure(figsize=(10, 6))
bars = plt.bar(algorithms, accuracies, color=colors, width=0.6)

添加数值标签

for bar in bars:
height = bar.get_height()
plt.text(bar.get_x() + bar.get_width()/2., height + 0.01,
f'{height:.3f}', ha='center', va='bottom', fontsize=12)

设置图表样式

plt.title('不同算法手写汉字识别准确率对比(一到十、年月日)', fontsize=14)
plt.xlabel('识别算法', fontsize=12)
plt.ylabel('识别准确率', fontsize=12)
plt.ylim(0, 1.0) # 准确率范围0-1
plt.grid(axis='y', linestyle='--', alpha=0.7)

保存图片(可选)

plt.savefig('汉字识别算法对比.png', dpi=300, bbox_inches='tight')
plt.show()

打印详细结果

print("各算法识别准确率:")
print(f"K近邻(KNN):{knn_acc:.3f}")
print(f"支持向量机(SVM):{svm_acc:.3f}")
print(f"随机森林(RF):{rf_acc:.3f}")

http://www.rkmt.cn/news/157937.html

相关文章:

  • 2025年度实验型过滤洗涤干燥三合一设备厂家排行榜 - myqiye
  • PaddlePaddle镜像支持ONNX导出吗?模型转换实测分享
  • 接口管理工具Apifox在测试工作流中的角色定位
  • 2025继续教育必备!9个降AI率工具测评榜单
  • 生物制药VS食品加工:中试冻干机功能选配的“行业定制术” - 品牌推荐大师
  • 为什么选择PaddlePaddle镜像?中文NLP与CV任务的最佳实践
  • CANN开源仓Catlass横模库适配自定义模型踩坑录
  • Open-AutoGLM无响应怎么办?90%用户忽略的底层机制揭秘
  • 办公家具定制公司产品质量哪家好?办公家具服务商哪个靠谱? - myqiye
  • 从入门到精通Open-AutoGLM:你必须掌握的12个核心概念
  • springboot鲜花销售系统 网上鲜花商城系统商家 _hx588n89
  • PaddlePaddle互动小说创作平台
  • 深入理解C语言指针传参:为什么这个ADC读取函数必须用指针?
  • 宏智树AI查重不是“交差”,而是学术写作的第一道质检关——为什么免费查重工具值得你认真对待?
  • 2025儿童面部彩绘工具套装优质品牌推荐 - 真知灼见33
  • PaddlePaddle虚拟主播表情驱动技术
  • 宏智树AI论文查重“零成本”秘籍:免费功能的神奇探秘
  • 自考必看!8个AI论文软件,轻松搞定格式规范与写作难题!
  • PaddlePaddle脑筋急转弯创作模型
  • PaddlePaddle城市人口流动预测模型
  • 2025年杭州本地靠谱装修公司排名,排屋装修公司推荐与联系方式全攻略 - myqiye
  • 第101章 PNP的曙光(悦儿)
  • PaddlePaddle金融报告生成自动化
  • PaddlePaddle戏曲唱腔分析AI模型
  • 2025年合肥情侣创意写真排行榜,精选情侣写真拍摄服务推荐 - 工业品网
  • 【清华智谱 Open-AutoGLM 深度解析】:揭秘国产AutoML大模型的技术突破与落地实践
  • Bili23 Downloader v1.70.4 绿色版:开源B站视频下载器
  • PaddlePaddle组织效能分析AI工具
  • PaddlePaddle图像版权检测AI模型
  • 宏智树AI如何让学术综述写作从“地狱”变“乐园”