虚拟变量

python虚拟环境

China☆狼群 提交于 2019-12-05 01:52:16
# 建议使用pip3安装到python3环境下 pip3 install virtualenv pip3 install virtualenvwrapper-win # 配置环境变量: # 控制面板 => 系统和安全 => 系统 => 高级系统设置 => 环境变量 => 系统变量 => 点击新建 => 填入变量名与值 变量名:WORKON_HOME 变量值:自定义存放虚拟环境的绝对路径 eg: WORKON_HOME: C:\Virtualenvs # 同步配置信息: # 去向Python3的安装目录 => Scripts文件夹 => virtualenvwrapper.bat => 双击 # 在终端工作的命令 # 1、创建虚拟环境到配置的WORKON_HOME路径下 # 选取默认Python环境创建虚拟环境: -- mkvirtualenv 虚拟环境名称 # 基于某Python环境创建虚拟环境: -- mkvirtualenv -p python2.7 虚拟环境名称 -- mkvirtualenv -p python3.6 虚拟环境名称 # 2、查看已有的虚拟环境 -- workon # 3、使用某个虚拟环境 -- workon 虚拟环境名称 # 4、进入|退出 该虚拟环境的Python环境 -- python | exit() # 5、为虚拟环境安装模块 -- pip或pip3

虚拟变量陷阱(Dummy Variable Trap)

北战南征 提交于 2019-11-26 20:01:43
在《 定量变量和定性变量的转换(Transform of Quantitative & Qualitative Variables) 》一文中,我们可以看到虚拟变量(Dummy Variable)与独热编码( One Hot Encoding)非常相似,其不同之处在于:在 虚拟编码 方案中,当特征具有 m 个不同类别标签时,我们将得到 m-1 个二进制特征,作为基准的特征被完全忽略;而在 独热编码 方案中,我们将得到 m 个二进制特征。 可以看到,独热编码( One Hot Encoding)比虚拟变量(Dummy Variable)多生成了一个变量,这对模型有什么区别呢?之前在《 虚拟变量陷阱(Dummy Variable Trap) 》一文中,我们阐述了使用独热编码会导致共线性问题,也就是自变量之间存在高度相关关系,从而使模型参数估计不准确。(另外,独热编码的截距表示均值,回归系数是与均值之间的差距;而虚拟变量的截距是参照类的值,回归系数表示与参照类的差距。)因此,如果线性模型有截距项,那么请使用虚拟变量;如果线性模型无截距项,那么使用独热编码。此外,如果线性模型有截距项,但在加了正则化之后,也可以使用独热编码,因为这相当于约束了 w 的解的空间。 除此之外,虚拟变量(Dummy Variable)与独热编码( One Hot Encoding)之间还有什么区别呢?1

虚拟变量陷阱(Dummy Variable Trap)

夙愿已清 提交于 2019-11-26 19:20:28
虚拟变量陷阱(Dummy Variable Trap) :指当原特征有m个类别时,如果将其转换成m个虚拟变量,就会导致变量间出现完全共线性的情况。 假设我们有一个特征“性别”,包含男性和女性两个类别,如果将此特征转换为2个虚拟变量,就是:男x 1 =[1,0],女x 2 =[0,1],意思就是:变量x 1 ,当性别为男时,x 1 =1,否则x 1 =0;变量x 2 ,当性别为女时,x 2 =1,否则x 2 =0。这样,目标y=w 1 x 1 +w 2 x 2 +b。因为x 1 +x 2 =1,因此,变量x 1 和变量x 2 之间存在线性关系,同时使用这两个变量将会导致共线性问题,使得模型参数无法估计。 解决的办法是:把目标y变成y=w 1 (x 1 +x 2 )+(w 2 -w 1 )x 2 +b=(w 2 -w 1 )x 2 +w 1 +b,意思就是把其中一个变量作为基准(这里是用“男”作为基准),将其从目标方程式中删去,这样只通过一个变量x 2 就能推导出所有信息,x 2 =1就表示性别为女,x 2 =0则表示性别为男。 需要注意的是,针对二元定性变量到虚拟变量的转换,直接对类别进行数字编码(男:0,女:1)和将其转换为虚拟变量(男:[0],女:[1])看似一样,但这只是一个巧合而已,这两种方法有本质的区别。前者是直接将类别型变量转变成离散值进行表示,后者是减少一个变量