研究生人工智能入门2(深度学习-传统神经网络)

61 阅读2分钟

分类

监督学习(supervised learning样本有label):最终是为了拟合一个函数
无监督学习(unsupervised learning)(样本无label)

模型评估方法(待补充)

混淆矩阵(coonfusion matrix)适用于多分类
:由混淆矩阵可以衍生出四个关键指标: 准确率ACC(混淆矩阵中正对角线/总量),精确率Precision(TP/竖线总和),召回率:Recall(TP/横线总和) ,F1分数:F1-Scores(精确率召回率相乘/相加)

image.png

  • TP(True Positive) :真实患病且被正确预测为患病的数量(8人)
  • FP(False Positive) :真实健康但被错误预测为患病的数量(4人)
  • TN(True Negative) :真实健康且被正确预测为健康的数量(86人)
  • FN(False Negative) :真实患病但被错误预测为健康的数量(2人)
  1. 准确率(Accuracy)
    模型预测正确的比例
    📌 (TP+TN)/Total = (8+86)/100 = 94%
  2. 精确率(Precision)
    预测为阳性时正确的概率
    📌 TP/(TP+FP) = 8/(8+4) = 66.7%
  3. 召回率(Recall)
    真实阳性中被正确找出的比例
    📌 TP/(TP+FN) = 8/(8+2) = 80%
  4. F1分数(F1-Score)
    精确率和召回率的调和平均
    📌 2*(Precision*Recall)/(Precision+Recall) = 72.7%
    ```
   y_true=test_labels.cpu().numpy()
    y_pred = preds.cpu().numpy()
#    计算混淆矩阵
    cm=confusion_matrix(y_true, y_pred)
    plt.figure(figsize=(8,6))
    sns.heatmap(cm, annot=True, fmt='d', cmap='Blues',
                xticklabels=['Normal', 'Fault'],
                yticklabels=['Normal', 'Fault'])
    plt.xlabel('Predicted',fontsize=16)
    plt.ylabel('Actual',fontsize=16)
    plt.title('Confusion Matrix',fontsize=16)
    plt.show()
    # 方法1:
    print("\nSklearn计算结果:")
    print(f"Accuracy: {accuracy_score(y_true, y_pred):.4f}")
    print(f"Precision: {precision_score(y_true, y_pred):.4f}")
    print(f"Recall: {recall_score(y_true, y_pred):.4f}")
    print(f"F1 Score: {f1_score(y_true, y_pred):.4f}")
    # 方法2
    print("\n分类报告:")
    print(classification_report(y_true, y_pred,
                                target_names=['Normal', 'Fault'],
                                digits=4))
```

均方误差

image.png

常见模型

线性模型

逻辑回归

传统神经网络

单层神经网络(向量×权重再通过输出函数)感知机

前馈神经网络(输入层+多层隐层+输出层)多层感知机

梯度下降

image.png

BP算法(起源自误差)

image.png

求导之后往梯度负方向走总归是好的

image.png

image.png