Skip to content

jinxianwei/machine2deeplearning_lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

machine2deeplearning_lab

工业数据的机器学习和深度学习算法预测

Machine or Deep Learning for HEU Lab

image image image

目录结构

机器学习

算法库 Sklearn 回归算法:线性回归,岭回归,多项式回归,决策树,正向激励(adaboost),随机森林,支持向量机

评估指标: sklearn.metrics提供了计算模型误差的几个常用算法:

          ```python
          # 评估指标时将训练集的r2_score与测试集r2_score进行比较,可以判断模型是否过拟合或欠拟合
                 import sklearn.metrics as sm
          # 平均绝对值误差:1/m∑|实际输出-预测输出|
          sm.mean_absolute_error(y, pred_y)
          # 平均平方误差:SQRT(1/mΣ(实际输出-预测输出)^2)
                 sm.mean_squared_error(y, pred_y)
          # 中位绝对值误差:MEDIAN(|实际输出-预测输出|)
                 sm.median_absolute_error(y, pred_y)
          # R2得分,(0,1]区间的分值。分数越高,误差越小。
                 sm.r2_score(y, pred_y)
          ```

分类算法: 1.线性分类器,线性判别分析(LDA),逻辑回归(logistic regression),朴素贝叶斯分类器(naive bayes classifier),感知器(perceptron) 2.支持向量机(support vector machine),最小二乘支持向量机(least squares support vector machines ) 3.二次分类器(quadratic classifier) 4.核估计(kernel estimation),最近邻居法(k-nearest neighbor) 5.Boosting(增强)算法,梯度增强(Gradient Boosting),自适应增强(Adaboost) 6.决策树(decision trees),随机森林(random forests) 7。神经网络(neural networks) 8.学习式向量量化(learning vector quantization) 9.bagging 装袋 10.ANN 人工神经网络

  ```python
   #分类的评价指标:
          1. 精确度(accuracy):分类正确的样本数/总样本数
          2. 查准率(precision_weighted):针对每一个类别,预测正确的样本数比上预测出来的样本数
          3. 召回率(recall_weighted):针对每一个类别,预测正确的样本数比上实际存在的样本数
          4. f1得分(f1_weighted):2x查准率x召回率/(查准率+召回率)

  ```
  • 线性回归
  • 逻辑回归
  • 决策树
  • Adaboost-(分类任务) 不同数量弱分类器在测试集上的accuracy accuracy
  • Nearest Neighbors -(分类任务) 不同Neighbors权重类型模型在测试集决策边界的可视化 k_neighbors
  • SVM-(分类任务) 不同SVM分类器在测试集决策边界的可视化 svm
  • LogisticRegression with PCA 训练集和测试集特征前两个主成分在类别上的可视化 x_train_pca x_test_pca
  • 绘制不同分类器在测试集上的预测概率 prob
  • 异常值检测 预测为异常点和真实的异常点的可视化 outlier_detection_pred outlier_detection

深度学习

依赖 Pytorch,框架 Pytorch_Lightning

  • 回归任务(npv混凝土强度数据)
  • 分类任务(鸢尾花分类数据)
注意
  • 运行前,确保终端当前路径在项目根目录

  • 深度学习任务,windows和linux在读取数据为dataloader时,需要注意num_workers参数的设置

运行命令

# 线性回归
python machine_learning/linear_regression/train.py

# 逻辑回归
python machine_learning/logistic_regression/train.py

# 逐步增强法(Adaboost)(分类任务)
python machine_learning/adaboost/adaboost_classifier.py
...

# 深度回归
python  deep_learning/regression/train.py

# 深度分类
python deep_learning/classification/train.py

## 深度学习 查看tensorboard损失曲线变化
tensorboard --logdir tb_logs/npvproject/version_0