本文档涵盖了存储库中的机器学习算法实现,包括分类、聚类、神经网络和支持性工具。这些实现范围从传统的统计方法到深度学习架构,应用于文本处理、计算机视觉和数值优化。
有关优化背景下的动态规划算法,请参阅动态规划。有关可能用于图神经网络等机器学习领域的图算法,请参阅图算法与网络分析。
该存储库实现了几种用于监督学习任务的核心分类算法。
在machine_learning/sequential_minimum_optimization.py47-403 中的 SmoSVM 类实现了使用顺序最小优化 (SMO) 的支持向量机。实现包括
Kernel 类 machine_learning/sequential_minimum_optimization.py404-435提供了线性、多项式和 RBF 核函数fit() 方法中的核心优化 machine_learning/sequential_minimum_optimization.py78-141_check_obey_kkt() 进行验证 machine_learning/sequential_minimum_optimization.py162-168_choose_alphas() 中启发式选择 alpha 对 machine_learning/sequential_minimum_optimization.py220-299在machine_learning/linear_discriminant_analysis.py94-250 中的 LDA 实现提供了基于高斯分布的分类
calculate_mean() 进行均值计算 machine_learning/linear_discriminant_analysis.py95-107calculate_probabilities() 进行类概率计算 machine_learning/linear_discriminant_analysis.py111-124calculate_variance() 中计算合并方差 machine_learning/linear_discriminant_analysis.py128-153predict_y_values() 进行基于判别的预测 machine_learning/linear_discriminant_analysis.py157-217SVM 和 LDA 架构
来源:machine_learning/sequential_minimum_optimization.py, machine_learning/linear_discriminant_analysis.py
在 machine_learning/k_means_clust.py129-176 中的 kmeans() 函数提供了无监督聚类及相关工具
get_initial_centroids() 进行随机质心选择 machine_learning/k_means_clust.py56-70assign_clusters() 进行簇分配 machine_learning/k_means_clust.py77-86revise_centroids() 更新质心 machine_learning/k_means_clust.py89-99compute_heterogeneity() 中计算异质性 machine_learning/k_means_clust.py102-116report_generator() 进行全面的簇分析 machine_learning/k_means_clust.py198-337| 功能 | 目的 | 输入 | 输出 |
|---|---|---|---|
get_initial_centroids() | 初始化簇中心 | (data, k, seed) | 初始质心 |
assign_clusters() | 分配点到簇 | (data, centroids) | 簇分配 |
revise_centroids() | 更新簇中心 | (data, k, assignments) | 新质心 |
compute_heterogeneity() | 计算簇内方差 | (data, k, centroids, assignments) | 异质性得分 |
来源:machine_learning/k_means_clust.py
该存储库实现了多种神经网络架构,用于不同的应用。
两个 CNN 实现服务于不同目的
通用 CNN 框架:CNN 类 neural_network/convolution_neural_network.py23-353 提供了一个完整的框架
convolute() 进行层处理 neural_network/convolution_neural_network.py109-143pooling() 进行特征图缩减 neural_network/convolution_neural_network.py145-167train() 中进行反向传播实现 neural_network/convolution_neural_network.py212-311save_model() 和 read_model() 实现保存/加载功能 neural_network/convolution_neural_network.py55-101基于 Keras 的 CNN:用于肺结核检测的医学影像应用 computer_vision/cnn_classification.py30-101 用于肺结核检测
The BPNN 类 neural_network/back_propagation_neural_network.py99-175 实现反向传播网络
DenseLayer 实现全连接层 neural_network/back_propagation_neural_network.py29-96forward_propagation() 进行计算 neural_network/back_propagation_neural_network.py69-79back_propagation() 计算梯度 neural_network/back_propagation_neural_network.py81-96train() 中进行迭代优化 neural_network/back_propagation_neural_network.py126-158通过 machine_learning/lstm/lstm_prediction.py14-56 实现时间序列预测能力
神经网络架构概述
来源:neural_network/convolution_neural_network.py、neural_network/back_propagation_neural_network.py、machine_learning/lstm/lstm_prediction.py、computer_vision/cnn_classification.py
词频模块 machine_learning/word_frequency_functions.py43-120 实现信息检索算法
term_frequency() 计算词数 machine_learning/word_frequency_functions.py43-61document_frequency() 进行语料库范围内的术语分析 machine_learning/word_frequency_functions.py64-84tf_idf() 进行组合加权 machine_learning/word_frequency_functions.py87-120这些实现处理了文本预处理,包括标点符号移除和大小写规范化。
| 算法 | 公式 | 用例 |
|---|---|---|
| 词频 | count(term, document) | 局部项重要性 |
| 文档频率 | count(documents containing term) | 全局项稀有度 |
| TF-IDF | tf * log10(N/df) | 平衡项加权 |
来源:machine_learning/word_frequency_functions.py
Haralick 描述符的实现 computer_vision/haralick_descriptors.py256-290 提供纹理分析
normalize_image() 进行像素值缩放 computer_vision/haralick_descriptors.py25-49grayscale() computer_vision/haralick_descriptors.py74-85binarize() 进行阈值处理 computer_vision/haralick_descriptors.py88-101matrix_concurrency() 计算纹理矩阵 computer_vision/haralick_descriptors.py222-253haralick_descriptors() 函数提取八种 Haralick 描述符 computer_vision/haralick_descriptors.py256-290结核病检测系统 computer_vision/cnn_classification.py30-101 展示了 CNN 的实际应用
计算机视觉处理流程
来源: computer_vision/haralick_descriptors.py, computer_vision/cnn_classification.py
MNIST 数据实用工具 neural_network/input_data.py114-342 提供标准化的数据集管理
_Datasets 命名元组 neural_network/input_data.py31-34next_batch() 生成小批量 neural_network/input_data.py200-243_dense_to_one_hot() 进行独热编码 neural_network/input_data.py76-82邻近度评分算法 other/scoring_algorithm.py97-119 实现基于范围的排名
get_data() 进行特征缩放 other/scoring_algorithm.py27-38calculate_each_score() 进行加权排名 other/scoring_algorithm.py41-77generate_final_scores() 聚合结果 other/scoring_algorithm.py80-94该算法将多维数据转换为 0-1 范围,并应用方向权重(0 表示最小化,1 表示最大化)来生成复合分数。
支持的基础架构
来源: neural_network/input_data.py, other/scoring_algorithm.py, machine_learning/word_frequency_functions.py