# Fast_Sci **Repository Path**: hactory/fast_-sci ## Basic Information - **Project Name**: Fast_Sci - **Description**: 利用python进行快速的科学计算和机器学习 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-09 - **Last Updated**: 2026-07-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: Python, 机器学习, 数据分析 ## README # Fast Sci Fast Sci 是一个面向数学建模、数据分析和机器学习实验的 Python 脚本集合。项目目标是把常用的科学计算流程二次封装成较容易复用的函数和类,便于快速调试、绘图、建模和结果评估。 当前代码主要位于 `Mathematic_Moding/`,包含数据预处理、数据保存、可视化、异常值查找、PCA、聚类、回归和机器学习分类器等脚本。 ## 环境 建议使用 Python 3.11 或更新版本。当前维护时已在 Python 3.11 环境下检查语法,并在 scikit-learn 1.8.0 下验证核心机器学习封装可导入和运行。`Machine_Learning.py` 对 scikit-learn 新旧版本的 `BaggingClassifier` 和 `LogisticRegression` 参数差异做了兼容处理。 安装依赖: ```powershell python -m pip install -r requirements.txt ``` 可选依赖: ```powershell python -m pip install mlxtend ``` `mlxtend` 仅用于旧版混淆矩阵绘图样式;未安装时,`Machine_Learning.Evaluate.Draw_confusion_matrix()` 会自动使用 scikit-learn 自带的 `ConfusionMatrixDisplay`。 ## 代码质量 项目目前使用标准库 `unittest` 做轻量回归检查,重点覆盖 `Machine_Learning.py` 的分类器训练、scikit-learn 版本兼容、历史拼写别名和参数范围校验。测试文件位于 `tests/`。 ## 模块概览 | 文件 | 用途 | | --- | --- | | `Machine_Learning.py` | KNN、Logistic、决策树、Bagging 分类封装和评估工具 | | `Regression.py` | 回归残差检查、异常值剔除、拟合图和正态性检验 | | `PCA_SUPER.py` | PCA 主成分分析和相关绘图 | | `DataTranslate.py` | 中心化、规格化、标准化、归一化等数据变换 | | `数据预处理.py` | 重复值、异常值和缺失值处理 | | `数据保存.py` | pickle 与 Excel 保存/读取工具 | | `数据可视化.py` / `Draw2.py` | 常用可视化辅助函数 | | `聚类.py` / `Determined_K.py` | KMeans、DBSCAN 和聚类数判断 | ## 使用示例 ```python from sklearn.datasets import load_iris from Mathematic_Moding.Machine_Learning import KNN, Evaluate iris = load_iris() model = KNN(iris.data, iris.target, k=3).train_model() evaluate = Evaluate(model, iris.data, iris.target) print(evaluate.Get_accuracy()) ``` 带参数范围搜索: ```python from sklearn.datasets import load_iris from Mathematic_Moding.Machine_Learning import DT iris = load_iris() trainer = DT(iris.data, iris.target) trainer.Change_Params(criterion="entropy", splitter="best") model = trainer.train_model(depth_max_range=[2, 6]) print(trainer.best_depth) ``` ## 验证命令 ```powershell python -m compileall -q Mathematic_Moding tests python -m unittest discover -s tests -v ``` 可以用一个轻量 smoke test 验证核心分类封装: ```powershell @' from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifier from Mathematic_Moding.Machine_Learning import KNN, DT, Bagging, Evaluate iris = load_iris() knn = KNN(iris.data, iris.target, k=3).train_model() dt_trainer = DT(iris.data, iris.target) dt = dt_trainer.train_model(depth_max_range=[2, 4]) bagging = Bagging(iris.data, iris.target).train_model(DecisionTreeClassifier, n_estimators_range=[2, 4]) print(Evaluate(knn, iris.data, iris.target).Get_accuracy()) print(dt_trainer.best_depth) print(type(bagging).__name__) '@ | python - ``` ## 已知限制 部分历史脚本仍保留了旧英文模块名导入方式,例如 `Data_Save`、`BaseFunction`、`Draw` 等;而当前仓库中的对应文件多为中文文件名。直接运行这些旧入口前,需要先整理导入路径或建立兼容模块。 `Machine_Learning.py` 中保留了 `Logisitic`、`Get_accury()` 和 `deepth_max_range` 等历史拼写接口,并提供 `Logistic`、`Get_accuracy()`、`depth_max_range` 等修正拼写别名。新增代码建议优先使用修正后的命名。 该项目以个人快速实验代码为主,函数命名和接口仍在整理中。新代码应优先保持向后兼容,并逐步补充可重复运行的示例和 smoke test。 ## 参考文献 包括但不限于以下书目: - 《Python数学建模算法与应用》司守奎、孙玺菁著 - 《利用Python进行数据分析》Wes McKinney 著 - 《数值分析》