定性变量和定量变量的转换

1、当变量为类别变量,且变量的类别较少时,可以考虑考转换成虚拟变量来处理

In [34]:

embark_dummies = pd.get_dummies(train_data.Embarked)
# drop the original column
train_data.drop('Embarked',axis=1,inplace=True)
train_data = train_data.join(embark_dummies)
In [35]:

sex_dummies = pd.get_dummies(train_data.Sex)
# drop the original column
train_data.drop('Sex',axis=1,inplace=True)
train_data = train_data.join(sex_dummies)
In [36]:

train_data.head()
Out[36]:

PassengerId    Survived    Pclass    Name    Age    SibSp    Parch    Ticket    Fare    Cabin    C    Q    S    female    male
0    1    0    3    Braund, Mr. Owen Harris    22.0    1    0    A/5 21171    7.2500    1    0    0    1    0    1
1    2    1    1    Cumings, Mrs. John Bradley (Florence Briggs Th...    38.0    1    0    PC 17599    71.2833    1    1    0    0    1    0
2    3    1    3    Heikkinen, Miss. Laina    26.0    0    0    STON/O2. 3101282    7.9250    1    0    0    1    1    0
3    4    1    1    Futrelle, Mrs. Jacques Heath (Lily May Peel)    35.0    1    0    113803    53.1000    1    0    0    1    1    0
4    5    0    3    Allen, Mr. William Henry    35.0    0    0    373450    8.0500    1    0    0    1    0    1
2、由于不同特征数据的数据的维度是不一致的,一般需要把这些数值映射到一个维度上,不然对于数值较大的特征会获得更高的权重,数据的维度大小不一致可能会影响到模型的结果

In [37]:

from sklearn.preprocessing import StandardScaler

train_data['Age'] = StandardScaler().fit_transform(train_data.Age.values.reshape(-1,1))
3、对于连续特征,比如本数据中的 Fare 特征,我们可以通分箱操作将连续特征离散化。这样也可以减少由于某一类异常值的出现导致的模型的不稳定(在已经判断该异常值不是具有丰富含义的情况下),然后可以考虑是使用虚拟变量还是使用将每个类别映射到一个特定的数据值上

In [38]:

# divide the fares into 5 parts
train_data['Fare'] = pd.qcut(train_data.Fare, 5)

# factorize
train_data['Fare'] = pd.factorize(train_data.Fare)[0]
观察各变量之间的相互关系¶
对于某些重要的变量特征之间进行皮尔逊系数的分析

In [39]:

corr = pd.DataFrame(train_data[['C','Q','S','female','male','Age','Pclass','Survived']])
plt.figure(figsize=(10,10))
plt.title("Pearson Correlation of Features", y=1.05, size=15)
sns.heatmap(corr.astype(float).corr(),linewidths=0.1,vmax=1.0, 
            square=True, cmap=plt.cm.viridis, linecolor='white', annot=True)
<Axes: title={'center': 'Pearson Correlation of Features'}>

丢弃某些无用特征,像乘客ID,姓名,飞机票

In [40]:

train_data.drop(['PassengerId',"Name","Ticket"],axis=1,inplace=True)
In [41]:

train_data.head()
Out[41]:

Survived    Pclass    Age    SibSp    Parch    Fare    Cabin    C    Q    S    female    male
0    0    3    -0.558012    1    0    0    1    0    0    1    0    1
1    1    1    0.607433    1    0    1    1    1    0    0    1    0
2    1    3    -0.266651    0    0    2    1    0    0    1    1    0
3    1    1    0.388912    1    0    1    1    0    0    1    1    0
4    0    3    0.388912    0    0    2    1    0    0    1    0    1
在进行特征工程,我们同时需要对于测试数据进行处理,使得在训练数据集上能够运行的模型能够很好在测试集上运行
 

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Stata回归分析中,当数据包含定性变量(也称为分类变量或离散变量)和定量变量(也称为连续变量)时,可以使用虚拟变量(也称为哑变量或指示变量)来处理定性变量。虚拟变量定性变量转换为多个二进制变量,其中每个变量代表定性变量的一种取值。 以下是处理定性变量定量变量的步骤: 1. 转换定性变量为虚拟变量:使用Stata的`tabulate`命令查看定性变量的取值,并使用`xi`命令将其转换为虚拟变量。例如,假设你的定性变量名为"category",有三个取值:"A"、"B"和"C",你可以使用以下命令创建三个虚拟变量: ``` xi: tabulate category ``` 2. 回归分析:使用Stata的`regress`命令进行回归分析。在回归模型中,将定性变量的虚拟变量定量变量一起包括在模型中。例如,假设你的因变量是"y",你的定性变量虚拟变量命名为"d_A"、"d_B"和"d_C",你的定量变量是"x",可以使用以下命令进行回归分析: ``` regress y x d_A d_B d_C ``` 注意,要将至少一个虚拟变量作为参照组,通常选择一个虚拟变量的取值作为参照组,并省略该虚拟变量。参照组的系数将用作比较组。 3. 解释结果:回归分析的结果将包括每个变量的系数估计值、标准误、显著性水平和置信区间。对于定性变量的虚拟变量,系数表示与参照组相比其他组的平均差异。对于定量变量,系数表示因变量定量变量每单位变化时的平均变化。 以上是在Stata中处理定性变量定量变量的一般步骤。具体操作还需根据数据和研究问题进行调整。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值