kaggle数据挖掘竞赛初步--Titanic<派生属性&维归约>

时间:2021-03-17 15:13:01

完整代码: https://github.com/cindycindyhi/kaggle-Titanic

特征工程系列:

Titanic系列之原始数据分析和数据处理

Titanic系列之数据变换

Titanic系列之派生属性&维归约

为什么有的机器学习项目成功了有的却失败了呢?毕竟算法是有限的改进也是有限的,最主要的因素就是特征的选择了。如果我们有一些与类别非常相关同时又相互独立的特征,学习起来是很容易的,相反就不一定了。通常情况下,并不是直接把原始数据作为特征,而是从中构建一些特征。这是机器学习中的主要工作。在这一步骤中,通常直觉、创造性、魔法和技术一样重要。

当然,机器学习的一个终极目标就是将特征工程过程越来越多地自动化。现在经常采用的一种方式是先自动产生大量的候选特征,然后根据它们与分类类别的信息增益等方法来选取最好的特征。但是,运行包含大量特征的学习器来寻找有用的特征组合太耗时,也容易导致过拟合。还是需要人为的介入特征的选择中。

什么是派生属性呢?派生属性就是从原始数据中得到的一些属性,比如上一节从Age属性经过Factorize得到的Age_bin属性就是一个派生属性,当然这种派生只是非常简单的派生。为什么要对这些属性做各种各样的统计和处理呢,这其实是特征工程的一部分,先构建足够多可能会对结果有意义的属性,然后再从这些候选集中选择我们想要的特征。特征工程非常繁琐,但是对数据挖掘非常重要,一般来说,做一个数据挖掘项目,百分之八十的努力要用在特征工程上。除了基本的转换和interaction属性,我们也要创造性的从原始属性中发现新属性。比如电话号码,可以从中提取出来国家和区域特征。

一 研究业务逻辑提取特征

Titanic的数据集相对较为简单,但是对于一些字符串类型的属性,比如Name我们可以从中提取出来一些可以揭示其社会地位的称号。

aaarticlea/png;base64,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*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" alt="" width="448" height="181" />

名字的长度也会代表一个人的社会地位,社会地位高的人可能会更容易得到救生船。

 df['Names'] = df['Name'].map(lambda x: len(re.split(' ',x)))

对于名字中间的爵位,可以看到称号有Mr Mrs Master等,经过统计可以看到有以下几种称号:

aaarticlea/png;base64,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" alt="" width="496" height="118" />

这些称号有法语还有英语,需要依据当时的文化环境将其归类,如何将其归类可以参考这篇文章trevorstephens.com/post/73461351896/titanic-getting-started-with-r-part-4-feature

     df['Title'] = df['Name'].map(lambda x: re.compile(",(.*?)\.").findall(x)[0])
df['Title'][df.Title=='Jonkheer'] = 'Master'
df['Title'][df.Title.isin(['Ms','Mlle'])] = 'Miss'
df['Title'][df.Title == 'Mme'] = 'Mrs'
df['Title'][df.Title.isin(['Capt', 'Don', 'Major', 'Col', 'Sir'])] = 'Sir'
df['Title'][df.Title.isin(['Dona', 'Lady', 'the Countess'])] = 'Lady'
df['Title_id'] = pd.factorize(df.Title)[0]+1

对于Ticket属性也需要处理,可以看到Ticket字段有的全是数字有的是字母和数字的集合,进一步对数据分析发现约25%的数据有前缀,前缀共有45种,如果把 . 和 / 去掉的话还剩29种,数字部分也有一定的规律:以1开头的一般是一等舱2开头的是二等舱3开头的是三等舱,4-9开头的大都是三等舱。以上这些数据告诉我们处理Ticket是有意义的,能够发现其内部蕴涵的信息。

 def processTicket():
global df
df['TicketPrefix'] = df['Ticket'].map(lambda x: getTicketPrefix(x.upper()))
df['TicketPrefix'] = df['TicketPrefix'].map(lambda x: re.sub\
('[\.?\/?]','',x))
df['TicketPrefix'] = df['TicketPrefix'].map(lambda x:re.sub\
('STON','SOTON',x))
df['TicketPrefix'] = pd.factorize(df['TicketPrefix'])[0]
df['TicketNumber'] = df['Ticket'].map(lambda x: getTicketNumber(x) )
df['TicketNumberLength'] = df['TicketNumber'].map(lambda x: len(x)).\
astype(int)
df['TicketNumberStart'] = df['TicketNumber'].map(lambda x: x[0:1]).\
astype(int)
df['TicketNumber'] = df['TicketNumber'].astype(int)
def getTicketPrefix(ticket):
match = re.compile("([a-zA-Z\.\/]+)").search(ticket)
if match:
return match.group()
else:
return 'U'
def getTicketNumber(ticket):
match = re.compile("([0-9]+$)").search(ticket)
if match:
return match.group()
else:
return ''

二 简单组合属性提取特征

一些属性可以从它本身的数据里提取一些信息,有些属性则需要和其他属性组合来产生信息。比如对淘宝上的一个商品来说,购买数/点击率可以反应商品的转化率,也是商品的一个非常重要的特征。

对于Titanic来说,我们用Age*Pclass组合产生一个属性,虽然没有一个名词来解释它,但是从结果数据上来看,我们增大了年纪大的人的权重也提高了高等舱的权重,从最后幸存的结果上看,这个组合还是有意义的。除了这两个属性之外,我们还可以对其他数值属性进行数学运算,以得到更大的候选特征集。

     numerics = df.loc[:, ['Age_scaled', 'Fare_scaled', 'Pclass_scaled', 'Parch_scaled', 'SibSp_scaled',
'Names_scaled', 'CabinNumber_scaled', 'Age_bin_id_scaled', 'Fare_bin_id_scaled']]
print "\nFeatures used for automated feature generation:\n", numerics.head(10) new_fields_count = 0
for i in range(0, numerics.columns.size-1):
for j in range(0, numerics.columns.size-1):
if i <= j:
name = str(numerics.columns.values[i]) + "*" + str(numerics.columns.values[j])
df = pd.concat([df, pd.Series(numerics.iloc[:,i] * numerics.iloc[:,j], name=name)], axis=1)
new_fields_count += 1
if i < j:
name = str(numerics.columns.values[i]) + "+" + str(numerics.columns.values[j])
df = pd.concat([df, pd.Series(numerics.iloc[:,i] + numerics.iloc[:,j], name=name)], axis=1)
new_fields_count += 1
if not i == j:
name = str(numerics.columns.values[i]) + "/" + str(numerics.columns.values[j])
df = pd.concat([df, pd.Series(numerics.iloc[:,i] / numerics.iloc[:,j], name=name)], axis=1)
name = str(numerics.columns.values[i]) + "-" + str(numerics.columns.values[j])
df = pd.concat([df, pd.Series(numerics.iloc[:,i] - numerics.iloc[:,j], name=name)], axis=1)
new_fields_count += 2 print "\n", new_fields_count, "new features generated"

这个过程自动产生大量的特征,这里用了9个特征产生了176个特征,可能这些特征有些过于多了,但是它只是一个候选集,我们可以通过一些处理筛选掉一些特征。当然有些模型也很适合大量特征的训练集,比如随机森林(有论文验证,随机森林是分类算法中表现最好的模型)。

产生的这些特征可能高度相关于原始特征,线性模型处理这类特征时会产生multicollinearity问题,可以用计算这些特征的皮尔逊相关系数,筛选相关性特征。如果用随机森林模型训练的话,可以不需要这个步骤。

三 用PCA进行维归约

通过上面三个部分的处理,我们得到了具有大量特征的维度很高的数据集,特征较多不能直接用来作为模型输入,一是因为这些特征间具有多重共线性,可能 会导致空间的不稳定;二是因为高维空间本身具有稀疏性,一维正态分布有68%的值落于正负标准差之间,而在十维空间上只有0.02%;三是由于过多的属性 会使挖掘需要很长时间。对于一些模型来说,比如使用L1(Lasso),当有大量属性时效果很好,因为它可以有效忽略掉噪声变量。而一些模型则容易过拟 合。

数据归约技术可以用来得到数据集的规约表示,它小得多,但仍接近于保持原始数据的完整性。也就是说,在归约后的数据集上进行数据挖掘将更加有效,仍然产生几乎相同的数据分析结果。

PCA(主成份分析)是一种维归约的方法,它搜索k个最能代表数据的n维正交向量,将原始数据投影到一个小的多的空间上,导致维归约。PCA通过创建一个替换的较小的变量集组合属性的基本要素。具体原理及python的实现过程可以参考这篇blog Implementing a Principal Component Analysis (PCA) in Python step by step

我们可以直接使用scikit-learn的PCA函数进行维规约

1     X = df.values[:, 1::]
2 y = df.values[:, 0]
3 variance_pct = .99
4 # Create PCA object
5 pca = PCA(n_components=variance_pct)
6 # Transform the initial features
7 X_transformed = pca.fit_transform(X,y)
8 # Create a data frame from the PCA'd data
9 pcaDataFrame = pd.DataFrame(X_transformed)

实验发现,PCA对于线性模型(不使用Lasso)非常有效,但是对于随机森林模型没有提高。