精华内容
下载资源
问答
  • weightweightSum的区别

    千次阅读 2017-08-22 14:23:08
    说起weight大家肯定都非常的清楚它的使用,可是weightSum恐怕有很多人不是很清楚,起码今天前我是不知道的,哈哈,来个笔记记录下二者的区别

    说起weight大家肯定都非常的清楚它的使用,可是weightSum恐怕有很多人不是很清楚,起码今天前我是不知道的,哈哈,来个笔记记录下二者的区别。

    一:weight的使用

    来个例子,简单明了。

    布局文件:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:orientation="horizontal">
    
        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="占50%" />
    
        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="占50%" />
    
    </LinearLayout>
    从布局文件,可以看出两个button,设置的weight分别为1,既二者占用的比例一样,各占50%的宽度。weight的占比计算为:父布局的-其他的占用空间,剩下的按照所有weight的比例来分。

       布局效果图:

       


    二:weightSum的使用

        布局文件:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:orientation="horizontal"
        android:weightSum="1">
    
        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.5"
            android:text="@string/hello_world" />
    
    </LinearLayout>
    效果图:
       

    内部的计算原理是:
    Button的宽度 = Button 的 width + Button的weight * 父布局(LinearLayout)的宽度 / weightSum
    上面的例子,也就是 Button的宽度 = 0 + 0.5 * LinearLayout的宽度 / 1 = 0.5 * LinearLayout的宽度
    也就是Button的宽度将占屏幕的一半。





    展开全文
  • class weight:对训练集里的每个类别加一个权重。如果该类别的样本数多,那么它的权重就低,反之则权重就高. sample weight:对每个样本加权重,思路和类别权重类似,即样本数多的类别样本权重低,反之样本权重高[1]...

    class weight:对训练集里的每个类别加一个权重。如果该类别的样本数多,那么它的权重就低,反之则权重就高.

    sample weight:对每个样本加权重,思路和类别权重类似,即样本数多的类别样本权重低,反之样本权重高[1]^{[1]}

    PS:sklearn中绝大多数分类算法都有class weight和 sample weight可以使用。

    Pytorch Tensorflow2 & Keras
    class weight 多分类:torch.nn.CrossEntropyLoss(weight=…)

    二分类/多标签:torch.nn.BCEWithLogitsLoss(pos_weight=…)
    二分类:tf.nn.weighted_cross_entropy_with_logits(pos_weight=…)二分类或多分类[2]^{[2]}:model.fit(class_weight=…)
    sample weight 多标签:torch.nn.BCEWithLogitsLoss(weight=…) model.fit(sample_weight=…)

    使用class weight时注意[2]^{[2]}

    1、使用class_weight会改变loss的范围,从而有可能影响到训练的稳定性. 当Optimizer的step size与梯度的大小有关时,将会出问题. 而类似Adam等优化器则不受影响. 另外,使用了class_weight后的模型的loss的大小不能和不使用class_weight的模型直接对比.

    Note: Using class_weights changes the range of the loss. This may affect the stability of the training depending on the optimizer. Optimizers whose step size is dependent on the magnitude of the gradient, like optimizers.SGD, may fail. The optimizer used here, optimizers.Adam, is unaffected by the scaling change. Also note that because of the weighting, the total losses are not comparable between the two models.

    2、设置class weight有一定讲究,参考资料[2]在不平衡的二分类问题中,为了让loss保持与之前的大小相接近,使用了下述代码来计算class weight:

    在这里插入图片描述

    另外,也可使用参考资料[4]中所提到的sklearn.utils或自定义的计算方法来得到class_weight.

    References:

    [1] Sample Weight & Class Weight

    [2] Classification on imbalanced data

    [3] Tensorflow Doc: Model.fit

    [4] How to set class weights for imbalanced classes in Keras

    展开全文
  • 什么是weightweightSum

    2016-10-24 15:48:33
    1.android:layout_weight 大体意思就是,android:layout_weight 这个属性代表了一个“重要性”的值,这个值的大小代表了该控件能在屏幕中占据多大的空间。这个值越大,表明该控件可以在父控件中占据较多的“剩余”...

    http://www.jianshu.com/p/9b0407252e8b  

    这里有详细的说明

    1.android:layout_weight 大体意思就是,android:layout_weight 这个属性代表了一个“重要性”的值,这个值的大小代表了该控件能在屏幕中占据多大的空间。这个值越大,表明该控件可以在父控件中占据较多的“剩余”空间。默认的weight是0。

    2.这个就很好理解了,weightSum定义了weight 总和的最大值。如果 android:weightSum 没有定义,那么默认值就是通过各个子类的 layout_weight 累加得到。

    展开全文
  • sklearn的做法是加权,加权就要涉及到class_weight和sample_weight,当不设置class_weight参数时,默认值是所有类别的权值为1。 类型权重 class_weight 字典类型,将类索引映射到权重值。对训练集里的每个类别加权,...

    分类问题中,当不同类别的样本量差异很大,即类分布不平衡时,很容易影响分类结果。因此需要进行校正。

    sklearn的做法是加权,加权就要涉及到class_weight和sample_weight,当不设置该参数时,默认所有类别的权值为1。

    类型权重 class_weight

    字典类型,将类索引映射到权重值。对训练集里的每个类别加权,作用于损失函数(仅在训练过程中)。从而使模型更加关注样本数量少的类别。如果某类别的样本数多,那么它的权重就低,反之则权重就高.

    应用场景
    第一种是误分类的代价很高。比如对合法用户和非法用户进行分类,将非法用户分类为合法用户的代价很高,我们宁愿将合法用户分类为非法用户,这时可以人工再甄别,但是却不愿将非法用户分类为合法用户。这时,我们可以适当提高非法用户的权重class_weight={0:0.9, 1:0.1}。

    第二种是样本是高度失衡的,比如我们有合法用户和非法用户的二元样本数据10000条,里面合法用户有9995条,非法用户只有5条,如果我们不考虑权重,则我们可以将所有的测试集都预测为合法用户,这样预测准确率理论上有99.95%,但是却没有任何意义。这时,我们可以选择balanced(scikit-learn 逻辑回归类库使用小结),让类库自动提高非法用户样本的权重。

    参数设置
    那么应该如何设置class_weight呢?

    1. 通过字典形式传入权重参数,如二分类问题y{0,1}y \in \{0,1\},class_weight={0:0.9, 1:0.1}
    2. 设置class_weight = 'balanced’
      此时,会自动调用from sklearn.utils.class_weight import compute_class_weight计算权重,平衡输入样本中各类别之间的权重。其计算公式为:
      weight=n_samples/(n_classesnp.bincount(y))weight = n\_samples / (n\_classes * np.bincount(y))
    import numpy as np
    
    y = [0,0,0,0,0,0,0,0,1,1,1,1,1,1,2,2]  #标签值,一共16个样本
    
    a = np.bincount(y)  # array([8, 6, 2], dtype=int64) 计算每个类别的样本数量
    aa = 1/a  #倒数 array([0.125     , 0.16666667, 0.5       ])
    print(aa)
    
    from sklearn.utils.class_weight import compute_class_weight 
    class_weight = 'balanced'
    classes = np.array([0, 1, 2])  #标签类别
    weight = compute_class_weight(class_weight, classes, y)
    print(weight) # [0.66666667 0.88888889 2.66666667]
    
    print(0.66666667*8)  #5.33333336
    print(0.88888889*6)  #5.33333334
    print(2.66666667*2) #5.33333334
    # 这三个值非常接近
    # 'balanced'计算出来的结果很均衡,使得惩罚项和样本量对应
    

    这种方式在原始的损失函数的基础上乘以对应的sample_weight来计算最终的损失。这样计算而来的损失函数不会因为样本不平衡而被“推向”样本量偏少的类别中

    样本权重 sample_weight

    numpy权重数组。对每个样本加权(仅在训练过程中),思路和类别权重类似,即样本数多的类别样本权重低,反之样本权重高

    应用场景
    样本不平衡,导致样本不是总体样本的无偏估计,从而可能导致我们的模型预测能力下降。遇到这种情况,我们可以通过调节样本权重来尝试解决这个问题。调节样本权重的方法有两种,第一种是在class_weight使用balanced。第二种是在调用fit函数时,通过sample_weight来自己调节每个样本权重。

    注意事项:

    1. 在sklearn中的逻辑回归时,如果上面两种方法都用到了,那么样本的真正权重是class_weight * sample_weight.
      原理:样本或类别的权重在训练模型最终通过损失函数实现(以逻辑回归为例):
      算法会把每个样本的训练损失乘以它的权重class_weight*sample_weight,损失函数为:

      J(θ)=βln(θ)=βi=1m(y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i))))J(\theta) =-\beta*\ln(\theta) = −\beta∑_{i=1}^m(y^{(i)}log(h_θ(x^{(i)}))+(1−y^{(i)})log(1−h_θ{(x^{(i)})}))

      其中,β=(class_weightsample_weight)\beta = (class\_weight∗sample\_weight)

      应用:做受众选择(人群扩展、人群定向)模型,若种子包括目标商品转化和行为用户(购买较少,加入线上加购、收藏作为正样本),可考虑加大转化用户的样本权重。

    2. 如果仅仅是类不平衡,则使用class_weight;
      如果类内样本之间还不平衡,则使用sample_weights。

    3. 如果class_weight选择balanced,那么类库会根据训练样本量来计算权重。某种类型样本量越多,则权重越低,样本量越少,则权重越高。

    展开全文
  • layout_weightweightSum

    2016-08-28 00:44:45
    LinearLayout的layout_weight给适配带来了很多方便, 但有些新司机不是很了解父布局中还有一个weightSum属性 android:layout_wi
  • 讲解一:weightSum和layout_weight属性合用 android:weightSum属性:定义weight总和的最大值。如果为指定该值,所有子视图的layout_weight属性的累加值作为总和的最大值。例如,通过指定子视图的layout_weight属性...
  • 学习Logistic回归的时候,在sklearn的LogisticRegression类中,构建学习器时,有一个参数是class_weight。另外在这个类的fit方法中,有一个参数是sample_weight。对这两个参数有一些认识,写篇文章记录一下。 类权重...
  • layout_weightweightSum

    2014-09-23 10:33:11
    在Android中,layout_weight属性的功能就与HTML百分比布局类似。...layout_weight表示占用容器剩余空间的比例,而容器有个属性为weightSum表示比例的总数。比如下面的布局文件:  android:orientation="horizont
  • sklearn下class_weight和sample_weight参数

    千次阅读 2020-04-10 00:03:07
    一直没有很在意过sklearn的class_weight的这个参数的具体作用细节,只大致了解是是用于处理样本不均衡。后来在简书上阅读svm松弛变量的一些推导的时候,看到样本不均衡的带来的问题时候,想更深层次的看一下class_...
  • 一个Button占据整个屏幕的一半宽度,开发文档中对layout_weight属性的描述: “定义weight总和的最大值。如果未指定该值,以所有子视图的layout_weight属性的累加值作为总和的最大值。一个典型的案例是:通过指定...
  • weight decay

    千次阅读 2014-10-20 23:08:18
    在ufldl的课程中了解到weight decay,查询了
  • Median Weight Bead

    2017-08-07 09:48:53
    Your task is to find the bead whose weight is median (the ((N+1)/2)th among all beads). The following comparison has been performed on some pairs of beads: A scale is given to compare the weights of ...
  • keras 中fit(self, x=None, y=None, batch_size=None, epochs=1, verbose=1, callbacks=None, validation_split=0.0...validation_data=None, shuffle=True, class_weight=None, sample_weight=None, initial_epoch=...
  • 关于weight decay

    2019-07-18 09:37:35
    weight decay的作用主要是令神经网络中的权重变小(趋于0),以防止过拟合 如y=∑iwixiy=\sum_{i}{w_ix_i}y=∑i​wi​xi​,则因噪声的存在,可能会令其中某几个www偏大,导致无法正确拟合正常输入 weight decay的...
  • 权重衰减(weight decay)L2正则化的目的就是为了让权重衰减到更小的值,在一定程度上减少模型过拟合的问题,所以权重衰减也叫L2正则化。1.1 L2正则化与权重衰减系数L2正则化就是在代价函数后面再加上一个正则化项...
  • 带你理解Android中weightweightSum的定义和工作原理。
  • 区块的Weight

    2018-04-22 21:19:51
    Weight是区块计费的新指标 Weight的出现来源于隔离见证,以前区块链的计费源于Size,即区块大小。 公式 weight=(tx&nbsp;size&nbsp;with&nbsp;witness&nbsp;data&nbsp;stripped)∗3+(tx&...
  • 首先声明:1).weightSum用于父容器  2).layout_weight用于子...当父容器weightSum=各子容器weight的总和时,或者父容器没有声明weightSum,则效果为:各子容器按照weight比例分配长度或宽度(没声明weight属性的容器
  • android weight属性

    2016-05-06 22:48:15
    weight属性可以理解为权重。 关于weight属性有一个计算公式,但是并不需要记住那个公式,所以我也没记住=。=我们只需要记住标准用法就好啦1、用weight设置宽:将控件的width设置为0dp android:layout_width=”0dp...
  • CSS 字体粗细 font-weight属性

    万次阅读 2018-02-13 22:11:05
    字体粗细在CSS中,通过 font-weight属性 用来设置字体的粗细值,取值为 lighter | normal | bold | bolder,默认为 normal。lighter 为细体,normal 为正常粗细,bold 为粗体,bolder 为特粗体。如:.lighter { font...
  • weight和height问题

    2019-04-26 14:52:12
    标题 weight和height问题
  • 在网上看了一些对Layout_weight的讲解,有些说的比较片面,只列举了一种情况,然后自己通过实验和一些比较好的文章总结了一下,特此记录下来,以备以后所用。Layout_weight是线性布局,也就是LinearLayout里面用到的...
  • 1)在工程中新建一个一个文件夹weight(存放weight),鼠标右键---User Interface---weight Blueprint,创建好俩个UI界面,Create(主界面),UMG(放在主界面中item界面) 2)需要给地图上蓝图设置地图一运行就执行...
  • layout_weight 用于给一个线性布局中的诸多视图的重要度赋值。 所有的视图都有一个layout_weight值,默认为零,意思是需要显示. 多大的视图就占据多大的屏幕空间。若赋一个高于零的值,则将父视图中的可用空间分割...
  • layout_weight属性的用法和意义

    万次阅读 多人点赞 2019-05-07 10:01:02
    一直没理解在LinearLayout中的layout_weight属性的意义,使用的时候都是将子控件的layout_width或者layout_height设置为0,然后在设置layout_weight的权重值,以至于在被问到如果设置了layout_width为具体的值时对...
  • Android weight属性

    2016-04-13 17:48:03
    在做Android布局的时候,经常遇到需要几个控件按比例分配空间的情况,使用layout_weight属性可以分配 要正确使用weight,不要再去纠结 android:layout_width="match_parent"和 android:layout_width="wrap_...
  • 在用xgboost训练二分类模型时,除了过采样和下采样,xgboost接口还提供一些处理不平衡数据的方法,有scale_pos_weight参数的设置,还有给样本赋予一定的权重。接下来让我们仔细看一下吧~ 参数scale_pos_weight: ...
  • 优选最高的weight

    千次阅读 2019-08-02 13:15:57
    优选最高的weight值,这个是cisco的私有属性,优选选择最高的weight,从本地产生默认是32768,从别处获取默认是0 在R4上发现去2.2.2.0/24走的下一跳是24.1.1.2,前面已经说过其原因,可以看到这里两条路由的weight...
  • 官方正统的解释:LinearLayout也支持子元素的权重(layout_weight)。权重属性为子元素指定了一个“重要程度”,并允许子元素填充父元素的剩余空间(注意,所谓剩余空间,参看下面的示例)。权重值是一个整数,各...
  • textview设置 weight

    千次阅读 2015-05-07 09:17:56
    LinearLayout.LayoutParams(int width, int height, float weight) Creates a new set of layout parameters with the specified width, height and weight.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 56,163
精华内容 22,465
关键字:

weight