交流群:462197261站长百科站长论坛热门标签收藏本站北冥有鱼 互联网前沿资源第一站 助力全行业互联网+
点击这里给我发消息
  • 当前位置:
  • 浅谈sklearn中predict与predict

    北冥有鱼 教程大全 2020-06-28 ,,

    predict_proba 返回的是一个 n 行 k 列的数组,列是标签(有排序), 第 i 行 第 j 列上的数值是模型预测 第 i 个预测样本为某个标签的概率,并且每一行的概率和为1。

    predict 直接返回的是预测 的标签。

    具体见下面示例:

    # conding :utf-8 
    from sklearn.linear_model import LogisticRegression 
    import numpy as np 
    x_train = np.array([[1,2,3], 
              [1,3,4], 
              [2,1,2], 
              [4,5,6], 
              [3,5,3], 
              [1,7,2]]) 
     
    y_train = np.array([3, 3, 3, 2, 2, 2]) 
     
    x_test = np.array([[2,2,2], 
              [3,2,6], 
              [1,7,4]]) 
     
    clf = LogisticRegression() 
    clf.fit(x_train, y_train) 
     
    # 返回预测标签 
    print(clf.predict(x_test)) 
     
    # 返回预测属于某标签的概率 
    print(clf.predict_proba(x_test)) 
     
    # [2 3 2] 
    #
    # [[0.56651809 0.43348191] 
    # [0.15598162 0.84401838] 
    # [0.86852502 0.13147498]] 
    # 分析结果: 
    # 标签是 2,3 共两个,所以predict_proba返回的为2列,且是排序的(第一列为标签2,第二列为标签3),
    # 返回矩阵的行数是测试样本个数 因此为3行
    # 预测[2,2,2]的标签是2的概率为0.56651809,3的概率为0.43348191 
    # 
    # 预测[3,2,6]的标签是2的概率为0.15598162,3的概率为0.84401838 
    # 
    # 预测[1,7,4]的标签是2的概率为0.86852502,3的概率为0.13147498 

    补充知识:sklearn中predict与predict_proba的识别结果不一致

    今天训练了好久的决策树模型在测试的时候发现个bug,使用predict得到的结果居然不是predict_proba中最大数值的索引!因为脚本中需要模型的置信度,所以希望拿到predict_proba的类别概率。

    经过胡乱分析发现predict_proba得到的维度比总类别数少了几个,经过测试发现就是这个造成的,即训练集中有部分类别样本数为0。这个问题比较隐蔽,记录一下方便天涯沦落人绕坑。

    Tip:在sklearn的train_test_split中有一个参数可以强制测试集和训练集的数据分布一致,也就不会导致缺类别的问题。

    以上这篇浅谈sklearn中predict与predict_proba区别就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持北冥有鱼。


    广而告之:
    热门推荐:
    详解小程序input框失焦事件在提交事件前的处理

    无论是小程序还是平常的Html页面,input文本框我们用到的次数都很多,这一篇文章主要是讲关于小程序中文本框聚焦自动拉起输入键盘的一些使用心得。 为什么我需要聚焦拉起键盘呢?为什么我弃用失焦事件呢? 因为在我的小程序文章中提供了评论文章的功能,昨天空闲下来我想将回复···

    Javascript的动态增加类的实现方法

    1.我们可以为每一个实例对象增加方法。也就是说我们在每次使用‘类'之外的方法时候,都需要创建一次。 function Dog(){   window.alert('I am a dog!'); } var dog1=new Dog();//实例化一个对象 //现在由于类Dog功能单一,无法满足对象dog1的需要,现在就要考虑为对···

    jquery获取easyui日期控件的值实现方法

    jquery easyui日期控件中,在页面里用JS拿到设置的日期值的方法 jquery获取easyui日期控件的值 jquery easyui 日期框 有这样的一个日期文本框: <input type="text" name="mdate" size="20" value="" id="mdate" class="easyui-datebox"/>  使用easyui给文本框选···

    JavaScript实现一个空中避难的小游戏

    前言 最近在看js中的事件,之前也一直有用到事件,用到最多的就是onclick单击事件,还有填写表单信息时的用到的onfocus聚焦时间,和onblur事件,最近看到了onmousemove鼠标移动事件,觉得很神奇,就突然很想写一个小游戏,用到了setInterval函数。游戏的功能也很简单,就是天上···

    antd组件Upload实现自己上传的实现示例

    前言 在实现图片上传时,可能需要用到Upload,但是它默认的上传方式是加入图片后直接上传,如果要实现最后再一次性上传,需要自定义内容。 //添加按钮的样式 const uploadButton = ( <div> <Icon type="plus" /> <div className="ant-upload-text">U···

    DEDECMS显示英文日期时间的方法

    本文实例讲述了DEDECMS显示英文日期时间的方法。分享给大家供大家参考。具体分析如下: 下面就说一下在dedecms如果把日期变成英文的. 时间格式:Saturday November-24 2007 07:49:45 要显示成这样的日期格式 1. 在列表页里,代码如下:   [field:pubdate functio···

    详解Angular6.0使用路由步骤(共7步)

    今天写的有点儿多了,前几天一直写js基础.今天想聊聊angular6.0的路由实现.因为有公司已经开始转向angular6.0了.写完赶紧吃饭去了. 声明一下,以下路由的实现是基于angular6.0 脚手架 实现的. 脚手架的安装方法不在此讨论范围内. 第一步:创建一个路由文件. 通过指令ng g module···

    原生js检测页面加载完毕的实例

    原生js的页面加载完毕的使用方法为 window.onload=function(){ //somecode } 在jquery的影响下的错误写法为: window.onload(function(){ //somecode }) 以上这篇原生js检测页面加载完毕的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持···

    js中判断数字\字母\中文的正则表达式 (实例)

    /* 判断指定的内容是否为空,若为空则弹出 警告框 */ function isEmpty(theValue, strMsg){ if(theValue==""){ alert(strMsg+"不能为空!"); return true; } return false; } /* 中文判断函数,允许生僻字用英文“*”代替 返回true表示是符合条件,返回false表示不符合 */ f···

    基于HTML5 Canvas 实现弹出框效果

    用户鼠标移入时,有弹出框出现,这样的需求很常见。这在处理HTML元素实现时简单,但是如果是对HTML5 Canvas 构成的图形进行处理,这种方法不再适用,因为Canvas使用的是另外一套机制,无论在Canvas上绘制多少图形,Canvas都是一个整体。而图形本身实际都是Canvas的一部分,不可···