logo
0
0
Login
Refactor code structure for improved readability and maintainability

Iris EDA, Clustering and NumPy 2-layer NN

本项目用于教学演示:

  • 对 Iris 数据集做基础 EDA(带类别着色的散点图)。
  • 用 PCA 将数据降到 3D,演示 k-means 聚类在该数据集上的不理想结果,并生成用于 ELKI 的 CSV。
  • 用纯 NumPy 自实现一个 2 层(1 隐藏层)神经网络并训练分类 Iris,输出测试集准确率和损失曲线。

准备与运行(Windows PowerShell):

  1. 创建/激活 Python 环境(建议 Python 3.9+)

  2. 安装依赖:

python -m pip install -r .\requirements.txt
  1. 运行 EDA 与聚类脚本:
python .\eda_and_clustering.py

输出文件(在当前目录):

  • scatter_species.png:sepal length vs sepal width,按物种着色
  • pca3d_species.png:PCA 3D,按真实物种着色
  • pca3d_kmeans.png:PCA 3D,按 k-means 聚类标签着色
  • iris_pca3.csv:用于 ELKI 的 CSV(包含 PC1/PC2/PC3、species、kmeans_label)
  • kmeans_report.txt:聚类评估(ARI 等)
  1. 运行 NumPy 网络训练:
python .\model_numpy.py

输出文件:

  • nn_loss.png:训练损失曲线
  • 控制台会打印训练过程和最终测试准确率

ELKI 可视化说明见 elki_instructions.md

TensorFlow Keras 示例与 Playground 可视化

项目包含一个简单的 TensorFlow Keras 示例 model_tf.py,用于训练一个二分类(setosa vs others)的小型网络并导出可用于 TensorFlow Playground 的 CSV。

运行(建议在已激活的虚拟环境中):

python .\model_tf.py

脚本将生成:

在 Playground 中:

  • 选择 Data -> Custom -> 粘贴 playground_iris_binary.csv 的内容
  • 确保使用 x1x2 作为输入特征,label 作为输出(binary classification)

注意:TensorFlow Playground 是用于教学演示的可视化工具,它使用自己内部的模拟网络,不会加载或执行本地 Keras 模型;把 CSV 粘贴到 Playground 可以直观探索不同网络结构和超参数下的决策边界。