AI编剧软件下载必备:智能生成短剧,从创作到变现全攻略
2026/4/25 0:18:44
import numpy as np from sklearn.metrics import confusion_matrix y_pred = [0, 1, 0, 1] # 模型预测结果 y_true = [0, 1, 1, 0] # 真实标签 print('混淆矩阵:\n', confusion_matrix(y_true, y_pred)) # 输出: # [[1 1] # [1 1]] ## accuracy from sklearn.metrics import accuracy_score y_pred = [0, 1, 0, 1] y_true = [0, 1, 1, 0] print('ACC:', accuracy_score(y_true, y_pred)) # 输出 ACC: 0.5 ## Precision,Recall,F1-score from sklearn import metrics y_pred = [0, 1, 0, 1] y_true = [0, 1, 1, 0] print('Precision', metrics.precision_score(y_true, y_pred)) print('Recall', metrics.recall_score(y_true, y_pred)) print('F1-score:', metrics.f1_score(y_true, y_pred)) # 输出: # Precision 0.5 # Recall 0.5 # F1-score: 0.5简单案例分析:
y_true = [0, 1, 1, 0]:我们把0看作 “狗(负类)”,1看作 “猫(正类)”,所以真实样本是:[狗, 猫, 猫, 狗]y_pred = [0, 1, 0, 1]:模型的判断是:[狗, 猫, 狗, 猫]import numpy as np from sklearn.metrics import roc_auc_score y_true = np.array([0, 0, 1, 1]) # 真实标签 y_scores = np.array([0.1, 0.4, 0.35, 0.8]) # 模型预测的置信度分数 print('AUC socre:', roc_auc_score(y_true, y_scores)) # 输出:AUC socre: 0.75y_true = [0, 0, 1, 1]:真实标签,我们把0看作狗(负类),1看作猫(正类)。所以这里有 2 只狗、2 只猫。y_scores = [0.1, 0.4, 0.35, 0.8]:模型给每张图打的 “是猫的置信度”,分数越高,模型越认为它是猫。AUC 的全称是ROC 曲线下的面积,它的本质含义是:
随机抽一只猫和一只狗,模型给猫打的置信度分数,比给狗打的分数高的概率。
用这个例子验证一下:
2×2=4种:from sklearn.metrics import roc_curve y_pred = [0, 1, 1, 0, 1, 1, 0, 1, 1, 1] y_true = [0, 1, 1, 0, 1, 0, 1, 1, 1, 1] # 计算ROC曲线的FPR和TPR FPR, TPR, thresholds = roc_curve(y_true, y_pred) # 计算KS值:FPR和TPR之间的最大差值 KS = abs(FPR - TPR).max() print('KS值: ', KS) # 输出:KS值: 0.5238095238095237roc_curve函数会帮我们计算不同阈值下的FPR和TPR,得到一组数据点。
KS 值的全称是Kolmogorov-Smirnov 值,它的定义是:
在所有可能的阈值下,TPR 和 FPR 之间的最大差值。
TPR - FPR越大,说明模型区分猫和狗的能力越强。