1. itertools.product  进行数据的多种组合 intertools.product(range(0, 1), range(0, 1))  组合的情况[0, 0], [0, 1], [1, 0], [1, 1] 2. confusion_matrix(test_y, pred_y)  # 构造混淆矩阵 混淆矩阵是TP(正的预测成正的), FP(正的预测成负的), TN(负的预测成负的), FN(负的预测成正的) 从混淆矩阵中,我们可以很清楚的看出这个信息,这是一个信用欺诈的案例,…
Advice for applying machine learning 本周主要学习如何提升算法效率,以及如何判断学习算法在什么时候表现的很糟糕和如何debug我们的学习算法.为了让学习算法表现更好,我们还会学习如何解决处理偏态数据(skewed data). 以下内容部分参考我爱公开课-Advice for applying machine learning 一.内容概要 Evaluating a learning algorithm Deciding what to try next(决定…
原理 在机器学习中, 混淆矩阵是一个误差矩阵, 常用来可视化地评估监督学习算法的性能. 混淆矩阵大小为 (n_classes, n_classes) 的方阵, 其中 n_classes 表示类的数量. 这个矩阵的每一行表示真实类中的实例, 而每一列表示预测类中的实例 (Tensorflow 和 scikit-learn 采用的实现方式). 也可以是, 每一行表示预测类中的实例, 而每一列表示真实类中的实例 (Confusion matrix From Wikipedia 中的定义). 通过混淆矩…
1.lr.predict_proba(under_text_x)  获得的是正负的概率值 在sklearn逻辑回归的计算过程中,使用的是大于0.5的是正值,小于0.5的是负值,我们使用使用不同的概率结果判定来研究概率阈值对结果的影响 从图中我们可以看出,阈值越小,被判为正的越多,即大于阈值的就是为正,但是存在一个很明显的问题就是很多负的也被判为正值. 当阈值很小时,数据的召回率很大,但是整体数据的准确率很小 因此我们需要根据召回率和准确率的综合考虑选择一个合适的阈值 lr = LogisticR…
准确率 召回率 精确率 : 准确率->accuracy, 精确率->precision. 召回率-> recall. 三者很像,但是并不同,简单来说三者的目的对象并不相同. 大多时候我们需要将三者放到特定的任务环境中才会更加明显的感觉到三者的差异. 在介绍这些之前,我们先回顾一下我们的混淆矩阵. True Positive(真正, TP):将正类预测为正类数. True Negative(真负 , TN):将负类预测为负类数. False Positive(假正, FP):将负类预测为正…
准确率.精确率(查准率).召回率(查全率).F1值.ROC曲线的AUC值,都可以作为评价一个机器学习模型好坏的指标(evaluation metrics),而这些评价指标直接或间接都与混淆矩阵有关,前四者可以从混淆矩阵中直接计算得到,AUC值则要通过ROC曲线进行计算,而ROC曲线的横纵坐标又和混淆矩阵联系密切,所以在了解这些评价指标之前,先知道什么是混淆矩阵很有必要,也方便记忆. 1.混淆矩阵 对于一个二分类问题,我们可以得到如表 1所示的的混淆矩阵(confusion matrix): 表…
评价指标是针对同样的数据,输入不同的算法,或者输入相同的算法但参数不同而给出这个算法或者参数好坏的定量指标. 以下为了方便讲解,都以二分类问题为前提进行介绍,其实多分类问题下这些概念都可以得到推广. 准确率 准确率是最好理解的评价指标,它是一个比值: \[ 准确率 = \cfrac{算法分类正确的数据个数}{输入算法的数据的个数} \] 但是使用准确率评价算法有一个问题,就是在数据的类别不均衡,特别是有极偏的数据存在的情况下,准确率这个评价指标是不能客观评价算法的优劣的.例如下面这个例子: 我们…
混淆矩阵.准确率.召回率.ROC曲线.AUC 假设有一个用来对猫(cats).狗(dogs).兔子(rabbits)进行分类的系统,混淆矩阵就是为了进一步分析性能而对该算法测试结果做出的总结.假设总共有 27 只动物:8只猫, 6条狗,13只兔子.结果的混淆矩阵如上图所示,我们可以发现,只有主对角线上的预测结果是完全正确的.每一列的和为预测为该类的数量,每一行的和为实际该类的数量.在这个混淆矩阵中,实际有8只猫,但是系统将其中3只预测成了狗:对于6条狗,其中有1条被预测成了兔子,2条被预测成了猫…
1. train_test_split(under_x, under_y, test_size=0.3, random_state=0)  # under_x, under_y 表示输入数据, test_size表示切分的训练集和测试集的比例, random_state 随机种子 2. KFold(len(train_x), 5, shuffle=False)  # len(train_x) 第一个参数数据数据大小, 5表示切分的个数,即循环的次数, shuffle表示是否进行打乱数据 3. r…
本文整理了关于机器学习分类问题的评价指标——Confusion Matrix.ROC.AUC的概念以及理解. 混淆矩阵 在机器学习领域中,混淆矩阵(confusion matrix)是一种评价分类模型好坏的形象化展示工具.其中,矩阵的每一列表示的是模型预测的样本情况:矩阵的每一行表示的样本的真实情况. 举个经典的二分类例子: 混淆表格:                 混淆矩阵是除了ROC曲线和AUC之外的另一个判断分类好坏程度的方法,通过混淆矩阵我们可以很清楚的看出每一类样本的识别正误情况.…