1.石油市场价格抓取算法

2.数据挖掘核心算法之一--回归

油价算法什么时候能改过来的_油价什么时候掉下来的

车型在没有发生大改款前提下,第一年折旧率约为15%至20%,第二至五年,每年递减7%至9%之间。同系列中,二手车的收购价以基本型为基础所以车主可以根据自己爱车所属车系,以基本型现价为准,再扣除折旧后,即可大致确定车辆的收购行情价格。

二手车购买优势

1.经济实惠

二手车一般都不是时下车市最新的车型,一般要落后两年,同一品牌同一车型的二手车,晚买一到两年,就可以省掉几千元钱。另外,随着油价的上涨,市民出行成本不断加大。如果市民经济不是很宽裕,买车只为了代步,买台二手车还是很划算的。

2.折价率低

任何一辆汽车,只要在车管所登记落户后,不管你用还是不用,或者你用多还是用少,它每一年的价值都在不断下降。一般来说,一年后要贬值20%,两年后要贬值35%,三年后贬值达50%。据公平价二手车评估统计,越是高档车折价率越大,每年折价率会高达1万多元。

如果您要买台二手车,就相当于别人在给自己的折价率埋单,买一台新车的钱,可以买两台不错的二手车,即使你用了几年后,再将车卖掉,也不会赔多少。在公平价搜索二手车的品牌车型都会有准确的车辆估值报告。

3.刮碰不心疼

不少买车的人都是新手,通常被戏称为“马路杀手”,由于驾车经验、驾驶技术不足,在路上难免会刮刮碰碰,如果是新车碰一下就得喷漆、维护,累加起来这也是不小的一笔费用。而买台二手车,即使发生刮碰,这种心疼的感觉也会小很多。小刮小碰只要无伤大雅,就能将就着用,等毛病大了,给车做一次大的翻新、美容就可以了。

石油市场价格抓取算法

凯越费用:开车上下班里程:52周*6天*30=9360公里 油价按6.5元算 开车上下班百公里费用:6.5*11.5=75元可以推算出上下班的费用=93.6*75=7020元---------------------油价按6.5元算 回老家

数据挖掘核心算法之一--回归

由于网站上的石油市场价格历史数据的时间粒度从年一直精确到日,所有的下载靠人工完成是很困难的,而且由于下载到本地之后的表格字段并不规范,所以必须要根据数据库字段的要求对字符串和Excel表格操作,使之规范化后再入库。其难点在于实现石油市场价格的自动抓取完成对数据源的自动下载,数据源的自动更新,与管理平台的无缝链接,以及ActiveX 插件的制作。

5.3.1.1 数据源的自动下载

石油市场价格数据有3个数据源,包括美国能源部能源信息署(EIA)、《华尔街日报》(WJS)和中石油(CNPC)的数据。这些数据源皆为互联网上的。针对3个不同的数据源的特点,用远程自动下载及规范化,以及基于正则表达式的网页数据自动抓取两种不同的技术完成。

(1)远程自动下载及规范化

对于美国能源部网站的油价历史数据,通过设计自动下载引擎,完成对其历史油价数据的自动远程下载,按照指定路径保存到本地,并将每次下载的结果保存到数据库下载日志表;将下载下来的数据进行清洗、转换并上载到中心数据库。

(2)基于正则表达式的网页数据自动抓取技术

由于大部分网页数据并没有提供下载的通道,而且油价数据同股价数据一样更新频率很高。因此需要对网站上的数据进行基于正则表达式网页数据自动抓取。华尔街油价数据、美国能源部上的油价、中石油网页上的油价数据,均需要通过正则表达式的网页自动抓取功能来实现。

网页抓取需要解决的问题:

1)得到需要抓取的网页的地址列表(URL);

2)根据网页的地址去请求,得到网页的内容;

3)分析网页(HTM L)的结构,并提取出需要的内容,即使用网页结构化信息抽取技术或元数据集技术。可以使用基于字符串查找定位和基于DOM(Document Object Model)结构的分析;数据抓取结构体系,如图5.27所示。

图5.27 B/S网页抓取结构体系

正则表达式的网页数据自动抓取技术涉及网页源码数据的本地化操作,装载源码数据控件的选择,相关信息源码的抓取,源代码的去行操作,数据中含有超链接和字体变换的HTML标签元素的去除,应用零款断言和截取子字符串等字符串函数的方法来抓取数据以及数据入库这些操作(图5.28)。

图5.28 基于正则表达式的网页信息抓取过程

5.3.1.2 数据源的自动更新

当完成对历史数据的初始化之后,需要设计监控引擎,监控网站数据源的更新情况,以决策是否执行增量下载任务。其监控引擎用实时监控技术以及周期性检测技术。当执行增量下载任务之后,需要对下载数据的有效性和完整性进行检查,指定的数据源要定格式、定期进行更新。数据源的自动更新,主要依据站点在对数据更新之后系统能及时发现并自动快速地获取更新。从站点上获取更新的手段,涉及数据更新后的更新超链接、按钮变化后的触发网址的变动,分析网址来获得更新等,如:《华尔街日报》的期货油价就是按照将日期写进网址来制作更新的;若是周末或是节日期间网址同样存在只是网页上无相关内容,于是便要考虑此次更新获得的数据是否有效和存在;另外在处理如AJAX 等网址不变的网络站点或者站点的更新不能从网址上得到解释时,使用针对网页的高级字符串操作来获取更新,前述的正则表达式便是最有效的方法之一。

5.3.1.3 与管理平台的无缝链接

管理平台的功能是要使下载、更新的多个任务按照程式的设计,分配到计算机的几个线程中,通过对线程的调度,达到自动下载和更新的有效管理。为此需要设计审核功能、日志功能、重试次数的阈值,以及开启多个Excel进程的功能。通过审核功能,可以查明自动下载过程中的异常,便于进行人工干预;通过日志功能,可以帮助我们依据日志对任务执行中的错误进行追踪和对出错原因进行判断;通过设置重试次数阈值,可以实现任务执行失败后重试;通过开启多个Excel进程的功能,可以实现EIA的Excel数据自动读取和转换。

5.3.1.4 预测程序ActiveX插件的制作

由于油价预测程序是基于C/S架构开发,要将程序发布到B/S架构必须使用插件技术从服务器端向客户端安装预测程序的核心部件,以达到对油价模型更新而不用再单独编写程序的目的,这样就保证了程序的完整性和解决方案之间的良好衔接。

创建ActiveX插件的过程,必须让系统提供一个接口使得插件能够完整地从后台链接到前台。因为工程无法生成tlb文件,没有tlb文件也就意味着注册失败,以及dll文件或ActiveX 控件在客户端无法使用。创建的类就是通过代码的方式将dll文件在客户端注册,生成tlb文件,使得.exe程序能够在B/S体系下进行操作。

数据挖掘核心算法之一--回归

回归,是一个广义的概念,包含的基本概念是用一群变量预测另一个变量的方法,白话就是根据几件事情的相关程度,用其中几件来预测另一件事情发生的概率,最简单的即线性二变量问题(即简单线性),例如下午我老婆要买个包,我没买,那结果就是我肯定没有晚饭吃;复杂一点就是多变量(即多元线性,这里有一点要注意的,因为我最早以前犯过这个错误,就是认为预测变量越多越好,做模型的时候总希望选取几十个指标来预测,但是要知道,一方面,每增加一个变量,就相当于在这个变量上增加了误差,变相的扩大了整体误差,尤其当自变量选择不当的时候,影响更大,另一个方面,当选择的俩个自变量本身就是高度相关而不独立的时候,俩个指标相当于对结果造成了双倍的影响),还是上面那个例子,如果我丈母娘来了,那我老婆就有很大概率做饭;如果在加一个,如果我老丈人也来了,那我老婆肯定会做饭;为什么会有这些判断,因为这些都是以前多次发生的,所以我可以根据这几件事情来预测我老婆会不会做晚饭。

大数据时代的问题当然不能让你用肉眼看出来,不然要海量计算有啥用,所以除了上面那俩种回归,我们经常用的还有多项式回归,即模型的关系是n阶多项式;逻辑回归(类似方法包括决策树),即结果是分类变量的预测;泊松回归,即结果变量代表了频数;非线性回归、时间序列回归、自回归等等,太多了,这里主要讲几种常用的,好解释的(所有的模型我们都要注意一个问题,就是要好解释,不管是参数选择还是变量选择还是结果,因为模型建好了最终用的是业务人员,看结果的是老板,你要给他们解释,如果你说结果就是这样,我也不知道问什么,那升职加薪基本无望了),例如你发现日照时间和某地葡萄销量有正比关系,那你可能还要解释为什么有正比关系,进一步统计发现日照时间和葡萄的含糖量是相关的,即日照时间长葡萄好吃,另外日照时间和产量有关,日照时间长,产量大,价格自然低,结果是又便宜又好吃的葡萄销量肯定大。再举一个例子,某石油产地的咖啡销量增大,国际油价的就会下跌,这俩者有关系,你除了要告诉领导这俩者有关系,你还要去寻找为什么有关系,咖啡是提升工人精力的主要饮料,咖啡销量变大,跟踪发现工人的工作强度变大,石油运输出口增多,油价下跌和咖啡销量的关系就出来了(单纯的例子,不要多想,参考了一个根据遥感信息获取船舶信息来预测粮食价格的真实案例,感觉不够典型,就换一个,实际油价是人为操控地)。

回归利器--最小二乘法,牛逼数学家高斯用的(另一个法国数学家说自己先创立的,不过没办法,谁让高斯出名呢),这个方法主要就是根据样本数据,找到样本和预测的关系,使得预测和真实值之间的误差和最小;和我上面举的老婆做晚饭的例子类似,不过我那个例子在不确定的方面只说了大概率,但是到底多大概率,就是用最小二乘法把这个关系式写出来的,这里不讲最小二乘法和公式了,使用工具就可以了,基本所有的数据分析工具都提供了这个方法的函数,主要给大家讲一下之前的一个误区,最小二乘法在任何情况下都可以算出来一个等式,因为这个方法只是使误差和最小,所以哪怕是天大的误差,他只要是误差和里面最小的,就是该方法的结果,写到这里大家应该知道我要说什么了,就算自变量和因变量完全没有关系,该方法都会算出来一个结果,所以主要给大家讲一下最小二乘法对数据集的要求:

1、正态性:对于固定的自变量,因变量呈正态性,意思是对于同一个答案,大部分原因是集中的;做回归模型,用的就是大量的Y~X映射样本来回归,如果引起Y的样本很凌乱,那就无法回归

2、独立性:每个样本的Y都是相互独立的,这个很好理解,答案和答案之间不能有联系,就像掷硬币一样,如果第一次是反面,让你预测抛两次有反面的概率,那结果就没必要预测了

3、线性:就是X和Y是相关的,其实世间万物都是相关的,蝴蝶和龙卷风(还是海啸来着)都是有关的嘛,只是直接相关还是间接相关的关系,这里的相关是指自变量和因变量直接相关

4、同方差性:因变量的方差不随自变量的水平不同而变化。方差我在描述性统计量分析里面写过,表示的数据集的变异性,所以这里的要求就是结果的变异性是不变的,举例,脑袋轴了,想不出例子,画个图来说明。(我们希望每一个自变量对应的结果都是在一个尽量小的范围)

我们用回归方法建模,要尽量消除上述几点的影响,下面具体讲一下简单回归的流程(其他的其实都类似,能把这个讲清楚了,其他的也差不多):

first,找指标,找你要预测变量的相关指标(第一步应该是找你要预测什么变量,这个话题有点大,涉及你的业务目标,老板的目的,达到该目的最关键的业务指标等等,我们后续的话题在聊,这里先把方法讲清楚),找相关指标,标准做法是业务专家出一些指标,我们在测试这些指标哪些相关性高,但是我经历的大部分公司业务人员在建模初期是不靠谱的(真的不靠谱,没思路,没想法,没意见),所以我的做法是将该业务目的所有相关的指标都拿到(有时候上百个),然后跑一个相关性分析,在来个主成分分析,就过滤的差不多了,然后给业务专家看,这时候他们就有思路了(先要有东西激活他们),会给一些你想不到的指标。预测变量是最重要的,直接关系到你的结果和产出,所以这是一个多轮优化的过程。

第二,找数据,这个就不多说了,要么按照时间轴找(我认为比较好的方式,大部分是有规律的),要么按照横切面的方式,这个就意味横切面的不同点可能波动较大,要小心一点;同时对数据的基本处理要有,包括对极值的处理以及空值的处理。

第三, 建立回归模型,这步是最简单的,所有的挖掘工具都提供了各种回归方法,你的任务就是把前面准备的东西告诉计算机就可以了。

第四,检验和修改,我们用工具计算好的模型,都有各种设检验的系数,你可以马上看到你这个模型的好坏,同时去修改和优化,这里主要就是涉及到一个查准率,表示预测的部分里面,真正正确的所占比例;另一个是查全率,表示了全部真正正确的例子,被预测到的概率;查准率和查全率一般情况下成反比,所以我们要找一个平衡点。

第五,解释,使用,这个就是见证奇迹的时刻了,见证前一般有很久时间,这个时间就是你给老板或者客户解释的时间了,解释为啥有这些变量,解释为啥我们选择这个平衡点(是因为业务力量不足还是其他的),为啥做了这么久出的东西这么差(这个就尴尬了)等等。

回归就先和大家聊这么多,下一轮给大家聊聊主成分分析和相关性分析的研究,然后在聊聊数据挖掘另一个利器--聚类。