作家
登录

解决机器学习问题有通法!看这一篇就够了

作者: 来源: 2017-09-19 09:50:48 阅读 我要评论

【沙龙】51CTO诚邀您9月23号和多位技巧大年夜咖一路聊智能CDN的优化之路,抓紧时光哦!


这篇文┞仿的重点便在后者—— 应用机械进修模型(包含预处理的阶段)。此文评论辩论到的内容来源竽暌冠我参加的过的数百次的机械进修比赛。请大年夜家留意这里评论辩论的办法是大年夜体上实用的,当然还有很多被专业人士应用的异常复杂的办法。

接下来会应用到python。

数据

在应用机械进修模型之前,所有的数据都必须转换为表格情势。如下图所示,这个过程是最耗时、最艰苦的部分。

解决机械进修问题有通法!看这一篇就够了

转换完成之后,便可以将这些表格数据灌入机械进修模型。表格数据是在机械进修或是数据发掘中最常见的数据表示情势。我们有一个数据表,x轴是样本数据,y轴是标签。标签可所以单列可所以多列,取决于问题的情势。我们会用X表示数据,y表示标签。

标签的种类

标签会定义你要解决何种问题,有不呵9依υ?题类型。例如:

  • 单列,二进制值(分类问题,一个样本仅属于一个类,并且只有两个类)
  • 单列,实数值(回归问题,只猜测一?值)
  • 多列,二进制值(分类问题,一个样本属于一个类,但有两个以上的类)
  • 多列,实数值(回归问题,多个值的猜测)
  • 多个标签(分类问题,一个样本可以属于几个类)

评估指标

对于任何类型的机械进修问题,我们都必定要知道若何评估结不雅,或者说评估指标和目标是什么。举例来说,对于不均衡的二进制分类问题,我们平日选择受试者工作特点曲线下面积(ROC AUC或简单的AUC);对于多标签或多类其余分类问题,我们平日选择分类交叉熵或多类对数损掉;对于回归问题,则会选择均方差。

我不会再深刻的讲解不合的评估指标,因为根据问题的不合话苄很多不合的种类。

开端测验测验机械进修库可以大年夜安装最基本也是最重要的开端,像numpy和scipy。

  • 查看和履行数据操作:pandas(http://pandas.pydata.org/)
  • 对于各类机械进修模型:scikit-learn(http://scikit-learn.org/stable/)
  • 最好的gradient boosting库:xgboost(https://github.com/dmlc/xgboost)
  • 对于神经收集:keras(http://keras.io/)
  • 数据画图:matplotlib(http://matplotlib.org/)
  • 监督进度:tqdm(https://pypi.python.org/pypi/tqdm)

Anaconda操作简单并且帮你预备好了这些,可是我没有应用,因为我习惯本身设备和自由应用。当然,决定计划在你手中。

对文本型的数据,把文本转化为稀少矩阵后,进行奇怪值分化(Singular Value Decomposition (SVD)),可以在scikit-learn中找到一个SVD的变异版叫做TruncatedSVD。

机械进修总体框架

2015起,我开端制造一个自念头器进修框架,还在完美过程中,很快就会宣布。下图所示的框架图就是这篇文┞仿中将会提到的基本框架:

解决机械进修问题有通法!看这一篇就够了

图片来源:A. Thakur and A. Krohn-Grimberghe, AutoCompete: A Framework for Machine Learning Competitions, AutoML Workshop, International Conference>解决机械进修问题有通法!看这一篇就够了

将数据分成练习及谕验证集“必须”根据标签进行。碰到分类问题,应用分层瓜分就对了。在Python中,用scikit-learn很轻易就做到了。

解决机械进修问题有通法!看这一篇就够了

碰到回归问题,一个简单的K-Fold瓜分就可以了。当然,也还有很多复杂的办法可以或许在保持练习及谕验证集原有分布的同时将数据瓜分开来。这个就留给读者们本身去演习啦。

然后对验证集做雷同的操作。

解决机械进修问题有通法!看这一篇就够了

在以上的例子中我选择用全数据的10%作为验证集,当然你可以根据手中具体的数据决定取样的大年夜小。

分好数据之后,就可以把它放在一边不要碰了。任何感化于练习集的运算都必须被保存并应用于验证集。验证集无论若何都弗成以和练习集混为一谈。因为混到一路之后固然回到一个让用户知足的评估指标值,但却会因为模型过拟合而不克不及应用。

下一步是辨认数据中不合的变量。平日有三种变量:数值变量、分类变量和文本变量。让我们用很受迎接的关于泰坦尼克号的数据集来举个例子。 (https://www.kaggle.com/c/titanic/data).

解决机械进修问题有通法!看这一篇就够了

在这里,“survival”(生计)就是标签。在前一个步调中我们已经把标签大年夜练习集中去掉落了。接下来,有pclass,sex, embarked变量这些变量由不合的级别,是以是分类变量。像age, sibsp, parch等就是数值变量。Name是一个含有文本的变量,但我不认为它对猜测是否生计有效。


  推荐阅读

  关于Hadoop你需要知道的一些事项

【沙龙】51CTO诚邀您9月23号和多位技巧大年夜咖一路聊智能CDN的优化之路,抓紧时光哦! 除非你以前几年一向隐居,远离这个计算机的世界,不然你弗成能没有听过Hadoop。全名Apache Hadoop,>>>详细阅读


本文标题:解决机器学习问题有通法!看这一篇就够了

地址:http://www.17bianji.com/lsqh/37504.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)