精华内容
下载资源
问答
  • 离散变量和连续变量

    千次阅读 2019-09-23 16:14:45
    离散变量是指其数值只能用自然数或整数单位计算的则为离散变量.例如,企业个数,职工人数,设备台数等,只能按计量单位数计数,这种变量的数值一般用计数方法取得.反之,在一定区间内可以任意取值的变量叫连续变量,其数值...

    离散变量是指其数值只能用自然数或整数单位计算的则为离散变量.例如,企业个数,职工人数,设备台数等,只能按计量单位数计数,这种变量的数值一般用计数方法取得.

    反之,在一定区间内可以任意取值的变量叫连续变量,其数值是连续不断的,相邻两个数值可作无限分割,即可取无限个数值.例如,生产零件的规格尺寸,人体测量的身高,体重,胸围等为连续变量,其数值只能用测量或计量的方法取得.

    如果变量可以在某个区间内取任一实数,即变量的取值可以是连续的,这随机变量就称为连续型随机变量,
    比如,公共汽车每15分钟一班,某人在站台等车时间x是个随机变量,
    x的取值范围是[0,15),它是一个区间,从理论上说在这个区间内可取任一实数3.5、√20等,因而称这随机变量是连续型随机变量。

    转载于:https://www.cnblogs.com/hanxiaosheng/p/9843147.html

    展开全文
  • 在总结前人研究的基础上对离散变量结构优化设计的研究现状及其发展历程进行了阐述,为使人们对离散变量结构优化的认识更全面深入,按照时间的先后顺序,对离散变量结构优化设计方法进行分类,并对现今比较实用的几种离散...
  • H = 条件熵(Y,X) H = Y 的计算熵,给定 X(以位为单位) Y = 因变量(列向量) X = 自变量注 1:每个不同的值都被视为一个唯一的符号。 注 2:需要 'Entropy' 和 'MutualInformation' 函数示例:“X”(1 位熵...
  • 此脚本显示了离散变量表示 (DVR) 的实现,以使用“盒子中的粒子”基组计算量子力学中与时间无关的一维势的本征能量和本征态。
  • 改编自普通的计算器,可以计算两个离散变量P和Q多次逻辑计算后的结果值。作为初学者,分享代码,相互学习,希望批评指导。
  • 为使复合形算法能够求解机械工程中设计变量为离散变量且各设计变量的增量一般不具有同样比例的难以获得合理最优点的优化设计问题,把反射系数改为各个设计变量的独立增量,按各个设计变量的独立增量进行搜索计算,从而...
  • 针对设计变量为离散变量,采用基于改进粒子群算法的离散变量处理策略对优化设计模型进行求解。通过具体实例计算,得到的优化设计参数比原设计参数更加合理,证明了该方法在行星减速器多目标优化中的可行性和合理性。
  • 因此需要对数据集中的非数值型离散变量进行处理,非数值型离散变量分为两类:有序型与无序型 一、有序型离散变量处理 什么叫有序型离散变量呢,比如说衣服尺码,M、L、XL;学历:小学、初中、高中、本科;这些都...

     使用sklearn训练模型,只能输入数值型变量。因此需要对数据集中的非数值型离散变量进行处理,非数值型离散变量分为两类:有序型与无序型

    一、有序型离散变量处理

    什么叫有序型离散变量呢,比如说衣服尺码,M、L、XL;学历:小学、初中、高中、本科;这些都属于有序型变量。

    在上图数据表格中,size及classlabel则为有序型变量,自定义有序型字典表,进行相关映射即可:

    二、无序型离散变量处理

    衣服的颜色,风向、人员类别这些都属于无序型变量,如果转换成有序型数值代入模型会对建模结果造成影响,因此对于无序型变量需要做独热编码或者哑变量处理

    (1)独热编码

    独热编码,又称为一位有效编码,主要是采用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效。 独热编码是分类变量作为二进制向量的表示,这首先要求将分类值映射到整数值,然后再将每个整数值表示为二进制向量。

    具体操作如下:首先将无序型变量color利用LabelEncoder()方法映射为数值

     

    再将整数型数值进行独热编码

    (2)哑变量处理

       在模型中引入多个虚拟变量时,虚拟变量的个数应按下列原则确定: 如果有m种互斥的属性类型,在模型中引入(m-1)个虚拟变量。 例如,性别有2个互斥的属性,引用2-1=1个虚拟变量;再如,文化程度分小学、初中、高中、大学、研究生5类,引用4个虚拟变量。 
      pandas中的get_dummies方法来创建哑特征,get_dummies默认会对DataFrame中所有字符串类型的列进行独热编码:

    在实际特征工程处理过程中,使用LabelEncoder()+OneHotEncoder()方式,sklearn能够将训练集属性记录,并可以采用transform()方法直接作用于待加入模型的测试集。

     什么情况下用都热编码:

    • 用:独热编码用来解决类别型数据的离散值问题,
    • 不用:将离散型特征进行one-hot编码的作用,是为了让距离计算更合理,但如果特征是离散的,并且不用one-hot编码就可以很合理的计算出距离,那么就没必要进行one-hot编码。 有些基于树的算法在处理变量时,并不是基于向量空间度量,数值只是个类别符号,即没有偏序关系,所以不用进行独热编码。  Tree Model不太需要one-hot编码: 对于决策树来说,one-hot的本质是增加树的深度

    总的来说,要是one hot encoding的类别数目不太多,建议优先考虑。 

     

    转载于:https://www.cnblogs.com/dearL/p/9551726.html

    展开全文
  • 实际工作中经常遇到变量离散数值情形,它的回归模型需要给予特殊的考虑。在经济分析中还经常遇到因变量不是数值的情况,比如买与卖、升与降、有与无、盈与亏等。这些情况可以给予一个虚拟变量并赋以数值代表。这样...
  • 具有辅助自由度的离散变量量子照明
  • python-层次聚类-离散变量

    千次阅读 2017-09-13 12:30:11
    层次聚类算法只能单独处理“连续变量”或者“离散变量”,这个实例中实现了仅针对“离散变量”的例子。 需要在聚类前进行最大最小归一化、正态归一化。 数据、下载代码可以访问我的github : ...

    根据机器学习中“层次聚类算法”的原理,我用python代码实现了一个具体的例子。层次聚类算法只能单独处理“连续变量”或者“离散变量”,这个实例中实现了仅针对“离散变量”的例子。
    需要在聚类前进行最大最小归一化、正态归一化。

    数据、下载代码可以访问我的github :  https://github.com/1066196847/clustering  点击打开链接

     

    # coding=utf-8
    import csv
    import os
    import pickle
    import cPickle
    import math
    from math import ceil
    import matplotlib.pyplot as plt
    import csv
    from tqdm import tqdm
    import numpy as np
    import pandas as pd
    from pandas import Series
    from pandas import DataFrame
    import operator
    import random
    
    '''
    函数说明:传入一个矩阵,找到最小的一个数字,返回对应的 ij索引
    '''
    def find_min_ij(matrix):
        min_num = matrix[1][2]
        min_i = 0
        min_j = 0
        for i in range(0,matrix.shape[0]):
            for j in range(matrix.shape[1]):
                if(i != j):
                    if(matrix[i][j]<min_num):
                        min_i = i
                        min_j = j
                        min_num = matrix[i][j]
        return min(min_i,min_j),max(min_i,min_j)
    
    
    '''
    函数说明:返回两个“聚类簇”间的距离。这个仅仅针对的是离散距离,所以采用VDM距离来衡量 两个样本簇间的距离
    参数说明:
    data -> 第一列是id列,并且这个dataframe变量的索引就是那个id列,其余所有的列是 特征列(这个算法只支持“离散”变量。但是层次聚类是支持连续、分类)
    cluster_1、cluster_2 -> list变量,表示两个样本簇,里面每一个元素是一个样本的索引
    '''
    def distance_cluster_ave(data, cluster_1, cluster_2):
        '''
        计算两个样本簇间 一一对应的两个样本 间的 VDM距离,最后取均值返回
        '''
        dis = 0.0
        for i in cluster_1:
            for j in cluster_2:
                # VDM距离计算的时候,是一个属性一个属性的计算,所以下面需要用过for循环,每一次计算一个属性的 VDM距离
                for k in range(1,len(data.columns)):
                    # i j 是一个样本的“索引号”,k 是一个 属性(或者说是特征) 所在的列号(我需要这个列号,使用ix采取到 数据中的某个值)
                    # 找出来这个属性中 i j两个样本取值。在总体数据中 各具有 几个?
                    i_quzhi = data.ix[i, k]
                    j_quzhi = data.ix[j, k]
                    i_quzhi_num = len(data[data[k] == i_quzhi])
                    j_quzhi_num = len(data[data[k] == j_quzhi])
    
                    dis += (float(1)/i_quzhi_num)**2 + (float(1)/j_quzhi_num)**2
    
        return float(dis)/(i*j*k)
    
    
    '''
    函数说明:将原始数据进行层次聚类
    参数说明:data->第一列是id列,并且这个dataframe变量的索引就是那个id列,其余所有的列是 特征列(这个算法只支持连续变量。但是层次聚类是支持连续、分类)
    '''
    def arrange(data):
        # 初始化 len(data) 个聚类簇,每一个簇里面放一个样本的“索引”。每一个簇是一个“list”变量,所有的簇放在一个“大list变量”。之后会不断更新
        # cluster_all的索引是从0开始的,But 数据样本的索引是从1开始的
        cluster_all = range(1, len(data)+1)
        for i in range(0, len(cluster_all)):
            cluster_all[i] = [cluster_all[i]]
        # 首先初始化“距离矩阵”。m是原始数据的“样本数”,我们现在要做出来一个矩阵,矩阵对应的 i j处 是 第i个聚类簇、第j个聚类簇 间的距离
        m = data.shape[0]
        # 下面一行代码中,必须要是0.0,否则python会默认自动类型转换
        matrix = DataFrame([[0.0] * m for i in range(m)])
        for i in range(m):
            for j in range(m):
                matrix[i][j] = distance_cluster_ave(data, cluster_all[i], cluster_all[j])
                matrix[j][i] = matrix[i][j]
    
            # 设定当前聚类簇个数:q=n
        q = m
        # 假设我们要求得的聚类 不多于 k 个
        k = 7
        while(q > k):
            print(q)
            # 找出来距离最近的两个聚类簇 cluster_all[min_i]   cluster_all[min_j] (min_i<min_j)。min_i min_j是“matrix”中的索引,也是“cluster_all”中的索引(从0开始的)
            min_i,min_j = find_min_ij(matrix)
            print 'min_i = ',min_i,'min_j = ',min_j
            # 合并 min_i min_j 两个聚类,将 min_j 这个聚类中的所有样本 放到 min_i中,又因为 min_j>min_i,所以将min_j之后的所有 聚类簇 的索引都在 cluster_all 中前进一位
            cluster_all[min_i] += cluster_all[min_j]
    
            for j in range(min_j,len(cluster_all)-1):
                cluster_all[j] = cluster_all[j+1]
            # 删除掉 cluster_all 最后一个索引处的数据
            del cluster_all[len(cluster_all)-1]
            '''
           到此时为止,cluster_all 中 还有 q-1 个聚类簇(包括那个添加了其他簇的 新簇)
           '''
            # 删除距离矩阵 中 列名为
            del matrix[min_j] # 删除列
            cols = list(matrix.index)# 删除行
            cols.remove(min_j)
            matrix = matrix.loc[cols]
            # 重置matrix的列名、索引
            matrix.columns = range(0,len(matrix.columns))
            matrix.index = range(0,len(matrix))
            # 更新距离矩阵。在这更新矩阵的时候,并不需要进行完全更新,只需要更新和 min_i 簇 有关的距离
            for j in range(0, q-1):
                matrix[min_i][j] = distance_cluster_ave(data, cluster_all[min_i], cluster_all[j])
                matrix[j][min_i] = matrix[min_i][j]
            q -= 1
            # 每次处理完都打印下 cluster_all 中的数据
            for i in cluster_all:
                print i
    
    
    if __name__ == "__main__":
        # 加载数据
        data = pd.read_csv('arrangement_vdm.txt')
        data.columns = list(range(0,len(data.columns)))
        data.index = list(data[0])
        # 进行聚类(在一次层次聚类的时候,只可以支持一种 变量类型),下面这个函数是支持 离散变量的,计算距离的时候,是计算 样本簇间的“vdm距离”
        arrange(data)
    

     

     

     

     

     

    展开全文
  • 针对满应力设计方法不能直接用于离散变量结构优化问题,把近似满应力设计方法和相对差商法结合起来,给出了适用于离散变量结构优化的2级算法。提高了相对差商法的收敛速度。该算法不仅能直接解决具有应力约束和截面...
  • 离散变量处理

    千次阅读 2017-05-09 14:15:58
    dummy encoding就是把一个有h个level的变量变成h-1个变量,比如3个level的变量就表示成成10,01,或00。而one-hot encoding就是用h个变量来代表这h个level,比如3个level的变量就表示成100,010,001 download....

    1、one-hot encoding

      假如多个特征需要独热码编码,那么久按照上面的方法依次将每个特征的独热码拼接起来:

        {sex:{male, female,other}}

        {grade:{一年级, 二年级,三年级, 四年级}}

      此时对于输入为{sex:male; grade: 四年级}进行独热编码,可以首先将sex按照上面的进行编码得到{100},然后按照grade进行编码为{0001},那么两者连接起来得到最后的独热码{1000001};

    from sklearn import preprocessing
    enc = preprocessing.OneHotEncoder()
    enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]])
    enc.transform([[0, 1, 3]]).toarray()
    one_hot encoding

    2、 dummy coding

    dummy encoding就是把一个有h个level的变量变成h-1个变量,比如3个level的变量就表示成成10,01,或00。而one-hot encoding就是用h个变量来代表这h个level,比如3个level的变量就表示成100,010,001

    download.file("http://archive.ics.uci.edu/ml/machine-learning-databases/statlog/german/german.data", 
        "./german.data")
    data <- read.table("./german.data")
    str(data)
    
    library("neuralnet")
    NNModelAllNum <- neuralnet(V21 ~ V2 + V5 + V8, data)
    NNModelAllNum
    NNModel <- neuralnet(V21 ~ V1 + V2 + V5 + V8, data)
    ## Error: 需要数值/复数矩阵/矢量参数
    
    dummyV1 <- model.matrix(~V1, data)
    head(cbind(dummyV1, data$V1))
    
    
    ##   (Intercept) V1A12 V1A13 V1A14  
    ## 1           1     0     0     0 1
    ## 2           1     1     0     0 2
    ## 3           1     0     0     1 4
    ## 4           1     0     0     0 1
    ## 5           1     0     0     0 1
    ## 6           1     0     0     1 4
    
    modelData <- model.matrix(~V1 + V2 + V5 + V8 + V21, data)
    head(modelData)
    
    ##   (Intercept) V1A12 V1A13 V1A14 V2   V5 V8 V21
    ## 1           1     0     0     0  6 1169  4   1
    ## 2           1     1     0     0 48 5951  2   2
    ## 3           1     0     0     1 12 2096  2   1
    ## 4           1     0     0     0 42 7882  2   1
    ## 5           1     0     0     0 24 4870  3   2
    ## 6           1     0     0     1 36 9055  2   1
    
    NNModel <- neuralnet(V21 ~ V1A12 + V1A13 + V1A14 + V2 + V5 + V8, modelData)

    3、 woe(weight of evidence)

    WOEi=ln(PyiPni)=ln(#yi/#yT#ni/#nT)=ln(#yi/#ni#yT/#nT)

    • Pyi 是这个组中响应客户(风险模型中,对应的是违约客户,总之,指的是模型中预测变量取值为“是”或者说1的个体)占所有样本中所有响应客户的比例,
    • Pni 是这个组中未响应客户占样本中所有未响应客户的比例,
    • #yi 是这个组中响应客户的数量, #ni 是这个组中未响应客户的数量,
    • #yT 是样本中所有响应客户的数量, #nT 是样本中所有未响应客户的数量
      • 当前分组中,响应的比例越大,WOE值越大;
      • 当前分组WOE的正负,由当前分组响应和未响应的比例,与样本整体响应和未响应的比例的大小关系决定,当前分组的比例小于样本整体比例时,WOE为负,当前分组的比例大于整体比例时,WOE为正,当前分组的比例和整体比例相等时,WOE为0。
      • WOE的取值范围是全体实数。

    4、iv (information value)

    IVi=(PyiPni)×WOEi

    IV=i=1nIVi

    • 对于变量的一个分组,这个分组的响应和未响应的比例与样本整体响应和未响应的比例相差越大,IV值越大,否则,IV值越小;
    • 极端情况下,当前分组的响应和未响应的比例和样本整体的响应和未响应的比例相等时,IV值为0;
    • IV值的取值范围是[0,+∞),且,当当前分组中只包含响应客户或者未响应客户时,IV = +∞。
    • n为特征包含的水平数目

    http://www.cnblogs.com/daguankele/p/6595470.html

    http://iccm.cc/generate-dummy-variable-in-r-language/

    https://www.zhihu.com/question/48674426?sort=created

    http://blog.csdn.net/kevin7658/article/details/50780391

    展开全文
  • 为解决离散变量结构优化客观追求的应该是"满意解"的问题,提出离散变量模糊优化的模型,构造了离散变量模糊优化的对称解法.把离散组合形算法作为组合形操作算子融合到遗传算法中,构造一种离散变量结构优化算法-组合形...
  • 离散变量的重编码

    2019-07-11 00:57:02
    在建模的过程中离散型的字符变量是不能直接用于建模,需要对这些变量进行重编码。重编码的方法有多种,字符型的值转换为整数型的值、哑变量处理(0-1变量)、One-Hot热编码(类似于哑变量)。 1.字符转数值的方法 ...
  • 提出了优化设计中对设计变量和约束条件进行缩减和分解的方法。...最后通过一个三维空间实例,证明所提方法优化效率高,效果明显,可节约材料39.26%,是求解大规模离散变量工程结构最轻设计问题的较好方法。
  • 在官方code中,有的属性变量比如gender被归为离散变量,有的属性变量如年龄则被归为连续变量。在日常生活中如果把年龄变量归为离散变量也没问题,这个要视乎看待该问题的粒度。但是在这里,离散变量的取值都是在事先...
  • 连续与离散变量的函数分布计算

    千次阅读 2016-11-02 09:15:50
    连续与离散变量的函数分布计算@(概率论)在二维函数分布的计算中,有一类是比较特别的,即两个变量类型分别是连续和离散的。那么对此函数的概率分布计算就需要适当展开,引入全概率计算方法。比如这样一道题: 设...
  • 基于MATLAB软件的离散变量优化问题的解法.rar
  • 基于MATLAB软件的离散变量优化问题的解法.pdf
  • 提出的布局优化方法是将桁架结构的截面变量、拓扑变量及形状变量统一为离散变量。将离散变量转化为适应于蚁群算法求解TSP问题的离散变量,应用MATLAB语言编写求解桁架结构布局优化程序,最终实现对问题的分析与求解。...
  • 在研究离散变量型的优化设计的基础上,建立了离散变量虚实网格结点集;提出了拟3维空间和拟n维空间概念;导出了可计算结点的计算公式;导出了拟n维空间离散变量网格迭代优化方法.解决了在一般工程结构设计实践中,...
  • 基于离散变量的张弦桁架截面优化设计,侯贯泽,,采用Matlab语言编程,建立一个张弦桁架结构模型,对该计算模型在各荷载工况下的受力性能等进行分析,得出最不利荷载工况组合;同时
  • python对离散变量的one-hot编码

    万次阅读 2017-11-17 15:32:07
    一般是对离散变量进行one-hot编码。下面具体介绍通过python对离散变量进行one-hot的方法。 注意:这里提供两种哑编码的实现方法,pandas和sklearn。它们最大的区别是,pandas默认只处理字符串类别变量,s...
  • 今天小编就为大家分享一篇python对离散变量的one-hot编码方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 数据预处理--离散变量处理

    千次阅读 2018-10-25 09:53:00
    离散变量标签处理 1.类别变量映射为原始变量 原始数据 import pandas as pd df = pd.DataFrame([ ['green', 'M', 10.1, 'class1'], ['red', 'L', 13.5, 'class2'], ['blue', 'XL', 15.3, 'c...
  • 为使复合形算法能够求解机械工程中设计变量为离散变量且各设计变量的增量一般不 具有同样比例的难以获得合理最优点的优化设计问题,把反射系数改为各个设计变量的独立 增量,按各个设计变量的独立增量进行搜索计算,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 99,750
精华内容 39,900
关键字:

属于离散变量的是