0

Python数据分析常见问题

Posted by Alan on July 12, 2017 in Coding, FAQ |

1. AttributeError: ‘DataFrame’ object has no attribute ‘sort’ 以上报错是由于Pandas升级放弃使用sort而改用sort_values和sort_index所致,可进行相应的更改,如

2.ImportError: No module named tensorflow 打开用户目录下的keras.config文件,修改backend的值(注意先备份文件)

 

Tags: ,

0

数据挖掘的方法论之CRISP-DM

Posted by Alan on August 19, 2016 in 大数据 |

在1996年,当时数据挖掘市场是年轻而不成熟的,但是这个市场显示了爆炸式的增长。三个在这方面经验丰富的公司DaimlerChrysler、SPSS、NCR发起建立一个社团,目的建立数据挖掘方法和过程的标准。在获得了EC(European Commission)的资助后,他们开始实现他们的目标。为了征集业界广泛的意见共享知识,他们创建了CRISP-DM Special Interest Group(简称为SIG)。 大概在1999年,SIG(CRISP-DM Special Interest Group)组织开发并提炼出CRISP-DM(Cross-Industry Standard Process for Data Mining),同时在Mercedes-Benz和OHRA(保险领域)企业进行了大规模数据挖掘项目的实际试用。SIG还将CRISP-DM和商业数据挖掘工具集成起来。SIG组织目前在伦敦、纽约、布鲁塞尔已经发展到200多个成员。 当前CRISP-DM提供了一个数据挖掘生命周期的全面评述。他包括项目的相应周期,他们的各自任务和这些任务的关系。在这个描述层,识别出所有关系是不可能的。所有数据挖掘任务之间关系的存在是依赖用户的目的、背景和兴趣,最重要的还有数据。SIG 组织已经发布了CRISP-DM Version 1.0 Process Guide and User Manual的电子版,这个可以免费使用。 Figure: Phases of the CRISP-DM Process Model 一个数据挖掘项目的生命周期包含六个阶段。这六个阶段的顺序是不固定的,我们经常需要前后调整这些阶段。这依赖每个阶段或是阶段中特定任务的产出物是否是下一个阶段必须的输入。上图中箭头指出了最重要的和依赖度高的阶段关系。 上图的外圈象征数据挖掘自身的循环本质――在一个解决方案发布之后一个数据挖掘的过程才可以继续。在这个过程中得到的知识可以触发新的,经常是更聚焦的商业问题。后续的过程可以从前一个过程得到益处。 业务理解 (Business Understanding) 最初的阶段集中在理解项目目标和从业务的角度理解需求,同时将这个知识转化为数据挖掘问题的定义和完成目标的初步计划。 数据理解 (Data Understanding) 数据理解阶段从初始的数据收集开始,通过一些活动的处理,目的是熟悉数据,识别数据的质量问题,首次发现数据的内部属性,或是探测引起兴趣的子集去形成隐含信息的假设。 数据准备 (Data Preparation) 数据准备阶段包括从未处理数据中构造最终数据集的所有活动。这些数据将是模型工具的输入值。这个阶段的任务有个能执行多次,没有任何规定的顺序。任务包括表、记录和属性的选择,以及为模型工具转换和清洗数据。 建模(Modeling) 在这个阶段,可以选择和应用不同的模型技术,模型参数被调整到最佳的数值。一般,有些技术可以解决一类相同的数据挖掘问题。有些技术在数据形成上有特殊要求,因此需要经常跳回到数据准备阶段。 评估(Evaluation) 到项目的这个阶段,你已经从数据分析的角度建立了一个高质量显示的模型。在开始最后部署模型之前,重要的事情是彻底地评估模型,检查构造模型的步骤,确保模型可以完成业务目标。这个阶段的关键目的是确定是否有重要业务问题没有被充分的考虑。在这个阶段结束后,一个数据挖掘结果使用的决定必须达成。 部署 (Deployment) 通常,模型的创建不是项目的结束。模型的作用是从数据中找到知识,获得的知识需要便于用户使用的方式重新组织和展现。根据需求,这个阶段可以产生简单的报告,或是实现一个比较复杂的、可重复的数据挖掘过程。在很多案例中,这个阶段是由客户而不是数据分析人员承担部署的工作。 原文链接:http://kb.cnblogs.com/page/76804/

Tags: ,

0

【大数据基础】使用Maven编写第一个MapReduce程序

Posted by Alan on February 21, 2016 in 大数据 |

前面讲过了如何使用和配置Maven,那么接下来就使用Maven编写一个MapReduce程序,这里参照某视频教程中的程序进行编写。 首先在前面创建的datacount项目的src/main/java下创建一个类,基本配置如下: 以下例子来自于传智播客某视频教程: 使用MapReduce程序分析一段手机访问日志,获取对应的上行流量、下行流量和总流量,以下是日志片段: 关于日志的字段说明如下: 因此我们只需获取列序号为1,8和9的三列数据(第一列序号为0),由于包含多项数据,我们封装了一个DataBean对象来做为Mapper的输出和以及Reducer的输入、输出。 编写文件如下: DataBean.java DataCount.java 完成代码编写后导出jar包 在Eclipse项目上右击选择Export,然后在弹出窗口中选择JAR file: 点击Next在接下来的窗口中勾选Export all output folders for checked projects并指定导出jar包的名称和路径。点击Finish完成即可: 执行程序: 上传HTTP_20130313143750.dat文件,并启动hdfs和yarn服务。接下来上传日志文件到hdfs上并执行程序 通过hadoop fs -cat /dataout/part-r-00000可查看执行结果如下: 注:其中的WARN信息不影响程序运行,为安装文件的编译问题,如需解决,请参考本地安装Hadoop完整笔记部分。

Tags: , , ,

0

【大数据基础】如何使用和配置Maven

Posted by Alan on February 21, 2016 in 大数据 |

Alan在安装CentOS时使用的是minimal文件,所以需要先安装图形化界面 如果安装中出现如下报错 请使用yum grouplist(或yum grouplist | grep ‘KDE\|GNOME’进行更精准查询)查看所在机器对应的KDE或GNOME组名是什么,修改组名再进行安装。 安装完成后在命令行输入init 5临时打开图形界面,然后同意协议添加一个用户账号即可进入图形登录页面。若要永久启动时即进入图形界面,需在/etc/inittab文件中进行配置。 接下来Linux上下载或上传Eclipase安装文件并解压完成完装: 将/usr/local/eclipse/eclipse加到桌面的快捷方式方便之后使用 然后双击桌面图标启动eclipse,新建一个maven项目,在新建窗口勾选Create a simple project(skip archetype selection),进入下一个窗口设置Group ID和Artifact ID然后点击完成即可: 创建好项目之后编辑项目的pom.xml文件在<project>标签对中加入hadoop和mapreduce的依赖,保存后系统会自动下载对应的依赖包文件 如下图所示,原本空的Maven Dependencies下会出现配置后下载导入的jar包

Tags: ,

0

【大数据基础】第一个MapReduce程序

Posted by Alan on February 3, 2016 in 大数据 |

Hadoop中最重要的两个部分就要属HDFS和MapReduce了,本文我们一起来探讨一下如何来实现MapReduce的入门级程序Word Count。 测试数据 Hello Tom Hello Jerry Hello Kitty Hello World Hello Tom 如何编写MapReduce Word Count代码? 本例中我们手动写入了输入输出文件路径(setInputPaths, setOutputPath) 编写main方法 继承Mapper类 继承Reducer类 如何导出jar包? 1.在project名称上右击在弹出窗口中点击Export,然后选择Java下的JAR file下一步 2.在JAR File Specification窗口中选择一个jar包导出路径和文件名,点击Next 3.紧接中进入JAR Packaging Options窗口,暂不进行任何操作点击Next进入下一步,在下面的JAR Manifest Specification页面Main class部分选择main方法所在类,然后点击Finish完成即可 将jar包上传到Linux服务器上,然后将测试数据上传到hdfs上(hadoop fs -put xx /words.txt)。由于我们在程序中写入了输入文件和输出路径,并且在导出jar包时指定了main方法所在类,仅需输入hadoop jar wordcount.jar等待程序执行即可。 执行过程中会显示如下进度 输出结果

Tags: ,

0

【大数据基础】Hadoop集群环境伪分布式配置

Posted by Alan on January 4, 2016 in 大数据 |

本文使用环境为在VirtualBox上安装的CentOS虚拟机。这个安装部分比较简单,不再赘述,对这块不太熟悉的话可以参考【大数据基础】VirtualBox安装CentOS实操,考虑到生产环境多采用64位,本文中也使用64位的系统进行安装。 一、准备工作 在进入前需先做好网络配置,这部分在【大数据基础】VirtualBox安装CentOS实操中也做了介绍。接着需要做的是关闭防火墙,直接输入service iptables stop即可关闭防火墙,但这在重启后就会失效,要设置开机关闭防火墙请在命令行中输入chkconfig iptables off。 chkconfig iptables –list可以查看防火墙开机关闭状态,service iptables status可查看当前防火墙状态。 输入useradd hadoop添加用户hadoop,passwd hadoop两次输入密码来设置hadoop用户密码 二、安装JDK 安装方法一 可以去Oracle官网下载JDK然后上传到虚拟机上,对于可以上网的机器也可以直接通过wget命令下载到服务器上(未安装wget在命令行运行yum install wget -y来进行安装)。 然后为方便管理在/usr目录下创建一个java目录(),将所下载的JDK包直接解到到/usr/java目录 安装方法二 除了通过tar包安装外还可以下载rpm包来完成安装,方法相似 配置环境变量 要方便地使用Java就必须要配置环境变量,我们在/etc/profile文件的最后添加如下配置 然后输入source /etc/profile在应用刚刚设置的配置,此时在命令行中输入echo $PATH就会发现/usr/java/jdk1.8.0_66/bin已经被添加到了环境变量中,可以在命令行中输入java -version查看版本号来进行验证。 三、安装Hadoop 我们将使用前面创建的hadoop用户来安装Hadoop,执行su – hadoop切换到hadoop用户,然后上传Hadoop安装包或在虚拟机上直接下载Hadoop安装包,然后将安装包解压到hadoop用户的根目录下(/home/hadoop) 免登录配置 为方便Hadoop在本地的使用乃至今后管理Hadoop集群,我们会生成一对密钥来实现免登录。在命令行键入ssh-keygen -t rsa并连续4次回车生成密钥(其中的rsa代表加密类型),其中id_rsa文件为私钥,id_rsa.pub文件为公钥(两个文件都在用户根目录的.ssh目录下)。 实现免登录的原理实际上就是把公钥内容添加到所需免密码登录的主机的authorized_keys文件中,可以使用cat命令也可以使用专用的”ssh-copy-id -i 主机名或ip”来进行配置。当前我们采用伪分布式配置Hadoop,所以配置在本机上 此时发现已由之前ssh localhost需要输入密码变为免密码登录了(第一次登录需要输入设置为安全主机) Hadoop配置文件 光解压Hadoop压缩包还未完成Hadoop的安装,需要修改的主要有以下5个配置文件,这几个文件都在hadoop安装包的etc/hadoop/目录下 1.hadoop-env.sh 在本文件中主要设置JAVA_HOME,将文件中export JAVA_HOME=${JAVA_HOME}部分的${JAVA_HOME}修改为Java的安装目录(/usr/java/jdk1.8.0_66) 2.core-site.xml 在这个文件中主要配置NameNode的通信地址(fs.defaultFS)和hadoop运行时产生文件的存储路径(hadoop.tmp.dir) 3.hdfs-site.xml 在本文件中主要设置hdfs的副本数量,本例中我们搭建的是伪分布式,因而设置为1 4.mapred-site.xml 默认是没有这个文件的,但有一个模板文件mapred-site.xml.template,可执行mv mapred-site.xml.template […]

Tags: , ,

0

【大数据基础】VirtualBox安装CentOS实操

Posted by Alan on January 4, 2016 in Linux, 大数据 |

首先下载VirtualBox并安装,可在官网根据所使用的系统直接下载:https://www.virtualbox.org/wiki/Downloads。VirtualBox和一般的软件安装并没有什么差别,这里略过不提。 注:本文中使用Mac OS X系统进行操作,但文中的方法也同样适用Windows系统 安装完后打开VirtualBox,点击New添加虚拟机 在弹出的窗口中填写名称方便查找并选择需安装的操作系统类型及版本,这里名称填入hadoop01,操作系统选择64位的Linux,完成点击Continue 下一个页面为内存大小配置,此处用于配置所创建虚拟机所占用的内存大小,推荐大小为不小于512MB。可通过拖动滑块或直接输入来调整内存大小值,配置完成后点击Continue继续 下一个页面为硬盘配置页面,确定是否创建虚拟硬盘或使用已有的虚拟硬盘,我们选择Create a virtual hard disk now,点击Create进入下一步 下一个页面选择创建的虚拟硬盘类型,默认为VDI,据说VMDK可跨平台在VMware中导入,这里我们选择VMDK格式,点击Continue进入下一步 下一个页面用于如何为虚拟磁盘分配电脑的硬盘的资源,一般建议使用动态分配,这样不会占用过多的硬盘资源。点击Continue进入下一步 此处选择虚拟磁盘保存位置以及可使用的硬盘资源大小。点击Create进入下一步完成VirtualBox上虚拟磁盘的配置 此时在VirtualBox主界面左侧就会出现刚刚创建的hadoop01,选中该虚拟机,点击Start 进入的下一个页面需选择所下载CentOS的iso文件(可根据实际情况在以下地址中选择镜像下载地址:http://isoredirect.centos.org/centos/7/isos/x86_64/),点击Start开启操作系统的安装流程 接下来进入的是CentOS安装的欢迎界面,选择Install or upgrade an existing system并按下Enter/Return键 下一个页面为设备检测,可使用Tab键切换到Skip并按下Enter/Return键跳过该步骤 紧接着进入欢迎页面和安装向导中使用的语言,选择后点击Next或直接按下Enter/Return键进入下一步(注:如果点击后发现鼠标无法退出虚拟机界面,按下左侧的Command键即可) 接下来的页面选择存储设备,一般选择默认的Basic Storage Devices,点击Next或直接按下Enter/Return键进入下一步 接下来警告是否保存原虚拟磁盘的数据,由于我们是初次安装,可以选择Yes, discard any data,点击按钮或直接按下Enter/Return键进入下一步 接下来进入主机名和网络配置页面,主机名是指在局域网中显示的名称,这里我们使用hadoop01。在该页面点击Configure Network还可以进行网络配置,为便于对配置文件的了解我们将在安装完成后进行相关配置,点击Next按钮进入下一步 紧接着进入的是时区配置页面,可根据需求进行选择或保持默认,这里我们选择北京时间Asia/Shanghai,点击Next按钮进入下一步 接下来进入root用户的密码的设置页面,root用户在Linux中拥有最高权限,这个密码相当重要,务必记牢,点击Next按钮进入下一步 下一个页面选择安装类型,我们采用默认的Replace Existing Linux System(s),点击Next或直接按下Enter/Return键进入下一步 此时会弹出一个窗口确认是否写入(Write changes to disk),点击Next或直接按下Enter/Return键进入下一步 紧接着进入到安装进度页面 安装完成进入如下页面,点击Reboot进行重启 然后进入的是命令行页面,输入用户名(root)和密码完成登录 此时在主界面中点击Settings>Network,然后配置网卡适配器为Bridged Adapter,如无需上网,可选择Host-only Adapter,Alan使用的是Mac采用无线上网,这里选择en0: Wi-Fi(Airport) 在命令行界面输入vi /etc/sysconfig/network-scripts/ifcfg-eth0进行编辑,主要修改和配置的内容如下: vi […]

Tags: , , ,

0

Hadoop学习笔记

Posted by Alan on June 16, 2015 in Coding, 大数据 |

第一步:安装Linux 第二步:安装JDK javac查是否安装配置好了JDK,若未安装,以JAVA 7为例: 再次输入javac若出现类似下面的提示则表明安装成功 要在整个系统中使用JDK,还需要配置环境变量,首先打开/etc/profile下 通过source /etc/pofile设置生效 第三步:配置Hadoop 首先需要下载Hadoop安装包,以1.2.1版本为例,比如: 些时在命令窗口输入hadoop来检查配置是否成功

Tags: , ,

0

大数据的统计学基础

Posted by Alan on March 25, 2015 in 大数据, 电商经验 |

最近在看一本—数据挖掘与数据化运营实战:思路、方法、技巧与应用,读起来感觉很吃力,似乎这本书并不像其所称的那样适合“感兴趣的初学者”。在阅读的过程中发现在大数据这块的基础知识方面实际上是相当薄弱的,毕业太长什么方差矩阵之类虽很基础却都早已遗忘,所以再次求助万能的淘宝,决定先从一套名为《大数据的统计学基础》的视频开始学习,相信对于我刚刚开始入门的R语言后续学习也会非常有帮助。 第一天 第一步解决了一下Wordpress上输出数学公式的问题,使用了一个插件MathJax,部分内容参考http://www.mathjax.org/和http://www.suluclac.com/Wiki+MathJax+Syntax,如求均值 $\mu = \frac{1}{N}sum_{i=1}^n$ $ X_2=\frac{1}{N}(X_1 + X_2 + … +X_n) $ 学习均值-平均值、中位数-中间值、众数-同一数值出现次数较多的、离散程度(极差-最大数减最小数、方差) 方差公式(其中μ表示均值) $\sigma^2=\frac{1}{N}sum_{i=1}^N(X_i-\mu)^2=1/N\sum_{i=1}^NX_i^2-\mu^2$ 由于方差是使用数字的平方进行计算,比实际数字大一个量级,所以有时会使用标准差来进行比较,即 $\sigma = \sqrt{\sigma^2}$ 视视频PPT有提到通过R来计算均值(75.96667),排序查看众数(72),计算方差(96.51609)和标准差(9.82426) 频率直方图、频数直方图、箱线图、茎叶图、线图、柱形图、饼图 第二天 随机试验:所有可能结果的集合称为样本空间,其中的某个结果称为样本点。样本空间的某个子集称为随机事件,由一个样本点组成的单点集称为基本事件。事件中的某个样本点出现时称为事件发生。每个试验中一定会发生的事件称为必然事件 。每个试验中一定不会发生的事件称为不可能事件,用$\phi$表示。 事件关系 包含A⊂B,和事件A ∪ B,积事件 A ∩ B,差事件A-B,互斥事件A∩ B=$\phi$,逆事件B∪B=S,B∩B=$\phi$ 事件运算定律 交换律:A∪B = B∪A; A∩B = B∩A 结合律:A∪(B∪C) = (A∪B)∪C; A∩(B∩C) = (A∩B)∩C 分配律:A∪(B∩C) = (A∪B)∩(A∪C); A∩(B∪C) = (A∩B)∪(A∩C) 德摩根律:A∪B = A∩B […]

Tags: , , ,

0

学习R读书笔记之向量、矩阵和数组

Posted by Alan on March 23, 2015 in 大数据 |

使用vector函数可创建指定类型和长度的矢量 可通过seq来创建序列,seq.int(3,12)等价于3:12,该函数还有更为灵活的用法,除了指定序列的范围外还可指定步长 如上面示例所示,该序列包含3到12之间步长为2的数字。seq_along则创建一个从1开始,长度为输入值的序列 length()函数可查看向量的长度,nchar()函数可查看字符的长度 索引向量 向量循环和重复

Tags: , , , , ,

Copyright © 2012-2018 记录点滴生活 | Alan Hou的个人博客 All rights reserved.