这篇文章重点是介绍,数据挖掘,机器学习项目做为一个完整的流程是怎么样的,意义是制定本身一个规范,因此里面的具体细节并无花太多的心思,效果很差在所不免。重点是体会这个过程!!!html
这篇文章是这个系列的开篇立论,学了一年的机器学习方面的知识,可是当本身上手去作的时候,问题就来了,好像什么都知道一些,可是又什么都作不了,各类困难,实际工做中,没有人为你收集处理数据,而数据集质量的好坏,特征工程的质量,将决定最后模型的性能上限。数据科学,机器学习是一门实践的知识,而原理的东西彷佛永远都学不完。实际工做中,真正拉开差距的更可能是对客户需求,具体业务的理解,和工程的熟练度和深度。而这些东西是课本上学不到的,因此但愿在研二这一年,投入到实际的工程中去,作一些真正贴近实际的项目。python
在项目中我会用到python中两个重要的库,咱们会使用 Pandas 和 scikit-learn ,tensorflow等库。咱们会大量用到 Pandas 的DataFrame,这使得在 Python 中读取和处理表格数据变得很是简单。这个系列,我会把重点放在:git
特征工程,github
业务理解,算法
不一样机器学习算法的适用场合,机器学习
相同场合下不一样算法的表现,性能
对结果多指标的评价上,因此在实现上咱们直接调用各类轮子来实现咱们的模型。学习
下面这段复制了 知乎上的一篇文章,这篇文章写的很好,介绍了一个完整的数据科学项目的严格流程,按照这个流程作事情,会让人的头绪清楚,建议你们直接看下面连接的原文。网站
第一步,咱们要寻找有价值的数据集。 ui
寻找优质数据集进行完整的项目分析很困难。数据集须要足够大,大到出现内存和性能的限制。还须要具有业务价值。举个例子,这个数据集中包含了美国大学的招生条件、毕业率和毕业生将来收入的数据。这就是一个能够用来说故事的优质数据集。然而,若是你仔细想一想,就会发现这里面没有足够的细节来创建一个完整的项目。
举例说,你能够告诉别人若是他们去某些(好)大学,他们将来的潜在收入就会更高,可是这只须要一个很快的查找比较就能够完成,没有足够的空间去展现你的技术能力。你也能够发现若是大学有更高的入学条件,它们的毕业生就更有可能得到高薪,但这些就更偏向于讲故事,而非业务价值了。
当你有 GB 以上的数据量时,或者当你想要预测一些数据细节,内存和性能限制就会逐渐凸现出来,由于得对数据集运行算法运算。
一个优质数据集容许你编写一系列脚本对数据作变形,从而回答一些动态问题。股票价格就是一个很好的数据集。你能够根据这些数据预测次日的股价走势,而且在闭市的时候把新数据提供给算法。这能够帮助你执行交易,甚至是获取利润。这就不是在讲故事了 — 而是直接产生价值。
下面是一些可以找到优质数据集的地方:
浏览这些数据集时,想想若是有这些数据集,人们可能会问什么问题,而后再想一想这些问题是不是一次性的(“S&P 500 和房价的相关性是怎样的?”),或是持续性的(“你能预测股票价格吗?”)。这里的关键在于找到那些持续性的问题,这些问题须要屡次运行,并输入不一样的数据才能回答。
重要的事是要坚持一个角度。一次专一于太多事情会很难作成一个优秀的项目。选择一个有足够细节的角度这点也很重要。
咱们首先快速查看原始数据文件。下面是 2012 年第一季度收购数据的前几行:
100000853384|R|OTHER|4.625|280000|360|02/2012|04/2012|31|31|1|23|801|N|C|SF|1|I|CA|945||FRM|
100003735682|R|SUNTRUST MORTGAGE INC.|3.99|466000|360|01/2012|03/2012|80|80|2|30|794|N|P|SF|1|P|MD|208||FRM|788
100006367485|C|PHH MORTGAGE CORPORATION|4|229000|360|02/2012|04/2012|67|67|2|36|802|N|R|SF|1|P|CA|959||FRM|794
下面是 2012 年第一季度的表现数据的前几行:
100000853384|03/01/2012|OTHER|4.625||0|360|359|03/2042|41860|0|N||||||||||||||||
100000853384|04/01/2012||4.625||1|359|358|03/2042|41860|0|N||||||||||||||||
100000853384|05/01/2012||4.625||2|358|357|03/2042|41860|0|N||||||||||||||||
在编写代码以前,花点时间去理解数据是颇有用的。尤为对于业务型项目而言,由于咱们没有互动式地去探索数据,很难发现某些细节,除非一开始就找到它们。这种状况下,第一步就是去房利美的网站上读一读有关数据集的材料:
读完这些材料以后,咱们知道了一些有用的关键信息:
在设计项目结构和处理数据时,这些信息能帮助咱们节省一大笔时间。
在开始下载和探索数据以前,设计好项目结构是很是重要的。在打造一个完整的项目时,咱们的主要目标是:
为了达到这些目标,咱们要设计好项目的结构。一个结构良好的项目听从如下规范:
该项目的文件结构以下:
loan-prediction
├── data
├── processed
├── .gitignore
├── README.md
├── requirements.txt
├── settings.py