实战:把一个机器学习项目的准确率从0.65提升到0.98

在一幢建筑里要看到三样东西:它是否被正确的选址,它是否被牢固的奠基,它是否被成功的建造——约翰·沃尔夫冈·冯·歌德

大家好,我是今天的值班编辑,今天是中华民族最隆重、最热闹的传统节日,小编在此祝您全家新年快乐。财源滚滚随春到,喜气洋洋伴福来。骐骥一跃奔锦绣,大地流金万象新。高居宝地财兴旺,福照家门富生辉。欢聚一堂迎新春,欢天喜地度佳节。

小编之前在这个公众号里面挖过一个坑,写过一篇文章《25行python代码实现一个机器学习项目》,在文章中,小编用25行python代码训练的机器学习分类模型(决策树模型)的准确率得分为0.65,距离1.0还比较遥远。今天就来讲一讲如何提高模型的准确率。

实战:把一个机器学习项目的准确率从0.65提升到0.98

2)特征工程

特征工程(Feature Engineering)指的是从现有的训练数据中提取更多有效特征出来的神操作

比如数据类型转化、标准化、归一化、分箱、one-hot编码、缺失值填充、特征选择、降维、组合等等。

特征工程可以说是机器学习项目中最苦最累最没有技术含量的活(IT民工的说法不是白来的),但通常也是见效最快的方法。

既然说到了“工程“二字,小编就再罗索几句。通常一个机器学习工程师都把自己的技术方向称为”策略方向”,以区别于”工程方向“; 并且,”策略方向“的工程师通常会鄙视”工程方向“的工程师,好像自己天生就高人一等的样子。

实战:把一个机器学习项目的准确率从0.65提升到0.98

4)模型调参

通常,一个模型都有几个参数可以调整,这些参数被称为“超参数”。我们可以想办法寻找到这些参数的最优值,当然,有时候超参数的默认值就已经足够好了。调参也是要花不少时间的,毕竟每一次参数的调整都意味着重新训练一次模型。

实战:把一个机器学习项目的准确率从0.65提升到0.98

对pclass特征进行one-hot编码并填充回df(编码并填充之后就可以删除原始特征了)、对age特征用中位数填充缺失值并且转化为int:

实战:把一个机器学习项目的准确率从0.65提升到0.98

组合Parch 和 SibSp两个特征,生成新的特征family,并且把它二值化为0或1(有没有家属);

对Fare特征也使用中位数来补全缺失数据:

实战:把一个机器学习项目的准确率从0.65提升到0.98

生成x与y,初始化随机森林模型,开始训练、预测、评估:

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注