Ⅰ 如何评价一个数据挖掘软件,什么是最关键的谢谢了,大神帮忙啊
一、数据挖掘工具分类 数据挖掘工具根据其适用的范围分为两类:专用挖掘工具和通用挖掘工具。 专用数据挖掘工具是针对某个特定领域的问题提供解决方案,在涉及算法的时候充分考虑了数据、需求的特殊性,并作了优化。对任何领域,都可以开发特定的数据挖掘工具。例如,IBM公司的AdvancedScout系统针对NBA的数据,帮助教练优化战术组合。特定领域的数据挖掘工具针对性比较强,只能用于一种应用;也正因为针对性强,往往采用特殊的算法,可以处理特殊的数据,实现特殊的目的,发现的知识可靠度也比较高。 通用数据挖掘工具不区分具体数据的含义,采用通用的挖掘算法,处理常见的数据类型。通用的数据挖掘工具不区分具体数据的含义,采用通用的挖掘算法,处理常见的数据类型。例如,IBM公司Almaden研究中心开发的QUEST系统,SGI公司开发的MineSet系统,加拿大SimonFraser大学开发的DBMiner系统。通用的数据挖掘工具可以做多种模式的挖掘,挖掘什么、用什么来挖掘都由用户根据自己的应用来选择。 二、数据挖掘工具选择需要考虑的问题 数据挖掘是一个过程,只有将数据挖掘工具提供的技术和实施经验与企业的业务逻辑和需求紧密结合,并在实施的过程中不断的磨合,才能取得成功,因此我们在选择数据挖掘工具的时候,要全面考虑多方面的因素,主要包括以下几点: (1) 可产生的模式种类的数量:分类,聚类,关联等 (2) 解决复杂问题的能力 (3) 操作性能 (4) 数据存取能力 (5) 和其他产品的接口 三、数据挖掘工具介绍: 1.QUEST QUEST是IBM公司Almaden研究中心开发的一个多任务数据挖掘系统,目的是为新一代决策支持系统的应用开发提供高效的数据开采基本构件。系统具有如下特点: 提供了专门在大型数据库上进行各种开采的功能:关联规则发现、序列模式发现、时间序列聚类、决策树分类、递增式主动开采等。 各种开采算法具有近似线性计算复杂度,可适用于任意大小的数据库。 算法具有找全性,即能将所有满足指定类型的模式全部寻找出来。 为各种发现功能设计了相应的并行算法。 2.MineSet MineSet是由SGI公司和美国Standford大学联合开发的多任务数据挖掘系统。MineSet集成多种数据挖掘算法和可视化工具,帮助用户直观地、实时地发掘、理解大量数据背后的知识。MineSet有如下特点: MineSet以先进的可视化显示方法闻名于世。 支持多种关系数据库。可以直接从Oracle、Informix、Sybase的表读取数据,也可以通过SQL命令执行查询。 多种数据转换功能。在进行挖掘前,MineSet可以去除不必要的数据项,统计、集合、分组数据,转换数据类型,构造表达式由已有数据项生成新的数据项,对数据采样等。 操作简单、支持国际字符、可以直接发布到Web。 3.DBMiner DBMiner是加拿大SimonFraser大学开发的一个多任务数据挖掘系统,它的前身是DBLearn。该系统设计的目的是把关系数据库和数据开采集成在一起,以面向属性的多级概念为基础发现各种知识。DBMiner系统具有如下特色: 能完成多种知识的发现:泛化规则、特性规则、关联规则、分类规则、演化知识、偏离知识等。 综合了多种数据开采技术:面向属性的归纳、统计分析、逐级深化发现多级规则、元规则引导发现等方法。 提出了一种交互式的类SQL语言——数据开采查询语言DMQL。 能与关系数据库平滑集成。 实现了基于客户/服务器体系结构的Unix和PC(Windows/NT)版本的系统。 4.Intelligent Miner 由美国IBM公司开发的数据挖掘软件Intelligent Miner是一种分别面向数据库和文本信息进行数据挖掘的软件系列,它包括Intelligent Miner for Data和Intelligent Miner for Text。Intelligent Miner for Data可以挖掘包含在数据库、数据仓库和数据中心中的隐含信息,帮助用户利用传统数据库或普通文件中的结构化数据进行数据挖掘。它已经成功应用于市场分析、诈骗行为监测及客户联系管理等;Intelligent Miner for Text允许企业从文本信息进行数据挖掘,文本数据源可以是文本文件、Web页面、电子邮件、Lotus Notes数据库等等。 5.SAS Enterprise Miner 这是一种在我国的企业中得到采用的数据挖掘工具,比较典型的包括上海宝钢配矿系统应用和铁路部门在春运客运研究中的应用。SAS Enterprise Miner是一种通用的数据挖掘工具,按照"抽样--探索--转换--建模--评估"的方法进行数据挖掘。可以与SAS数据仓库和OLAP集成,实现从提出数据、抓住数据到得到解答的"端到端"知识发现。 6.SPSS Clementine SPSS Clementine是一个开放式数据挖掘工具,曾两次获得英国政府SMART 创新奖,它不但支持整个数据挖掘流程,从数据获取、转化、建模、评估到最终部署的全部过程,还支持数据挖掘的行业标准--CRISP-DM。Clementine的可视化数据挖掘使得"思路"分析成为可能,即将集中精力在要解决的问题本身,而不是局限于完成一些技术性工作(比如编写代码)。提供了多种图形化技术,有助理解数据间的关键性联系,指导用户以最便捷的途径找到问题的最终解决办法。 7.数据库厂商集成的挖掘工具 SQL Server 2000包含由Microsoft研究院开发的两种数据挖掘算法:Microsoft决策树和Microsoft聚集。此外,SQL Server 2000中的数据挖掘支持由第三方开发的算法。 Microsoft决策树算法:该算法基于分类。算法建立一个决策树,用于按照事实数据表中的一些列来预测其他列的值。该算法可以用于判断最倾向于单击特定标题(banner)或从某电子商务网站购买特定商品的个人。 Microsoft聚集算法:该算法将记录组合到可以表示类似的、可预测的特征的聚集中。通常这些特征可能是隐含或非直观的。例如,聚集算法可以用于将潜在汽车买主分组,并创建对应于每个汽车购买群体的营销活动。,SQL Server 2005在数据挖掘方面提供了更为丰富的模型、工具以及扩展空间。包括:可视化的数据挖掘工具与导航、8种数据挖掘算法集成、DMX 、XML/A、第三方算法嵌入支持等等。 Oracle Data Mining (ODM) 是 Oracle 数据库 10g 企业版的一个选件,它使公司能够从最大的数据库中高效地提取信息并创建集成的商务智能应用程序。数据分析人员能够发现那些隐藏在数据中的模式和内涵。应用程序开发人员能够在整个机构范围内快速自动提取和分发新的商务智能 — 预测、模式和发现。ODM 针对以下数据挖掘问题为 Oracle 数据库 10g 提供支持:分类、预测、回归、聚类、关联、属性重要性、特性提取以及序列相似性搜索与分析 (BLAST)。所有的建模、评分和元数据管理操作都是通过 Oracle Data Mining 客户端以及 PL/SQL 或基于 Java 的 API 来访问的,并且完全在关系数据库内部进行。 IBM Intelligent Miner 通过其世界领先的独有技术,例如典型数据集自动生成、关联发现、序列规律发现、概念性分类和可视化呈现,它可以自动实现数据选择、数据转换、数据发掘和结果呈现这一整套数据发掘操作。若有必要,对结果数据集还可以重复这一过程,直至得到满意结果为止。现在,IBM的 Intelligent Miner已形成系列,它帮助用户从企业数据资产中识别和提炼有价值的信息。它包括分析软件工具 ----Intelligent Miner for Data和IBM Intelligent Miner forText ,帮助企业选取以前未知的、有效的、可行的业务知识---- 如客户购买行为,隐藏的关系和新的趋势,数据来源可以是大型数据库和企业内部或Internet 上的文本数据源。然后公司可以应用这些信息进行更好、更准确的决策,获得竞争优势。
记得采纳啊
Ⅱ 求大神简述一下LLE算法(或降维算法)在模式识别和数据挖掘中是怎样被应用的呢,谢谢
关于LLE算法具体的理论部分你可参考http://www.pami.sjtu.e.cn/people/xzj/introcelle.htm
Locally linear embedding (LLE),使用这种算法可以进行非线性降维,关键是其能够使降维后的数据保持原有拓扑结构
先给出一张下面算法得到的图 ,图中第一幅
LLE算法可以归结为三步:
(1)寻找每个样本点的k个近邻点;
(2)由每个样本点的近邻点计算出该样本点的局部重建权值矩阵;
(3)由该样本点的局部重建权值矩阵和其近邻点计算出该样本点的输出值。
为原始数据,第三个为降维后的数据,可以看出处理后的低维数据保持了原有的拓扑结构。
另,本人对LLE算法不是很熟悉,在此介绍一下其他降维算法的使用,以SVD算法为例。
电影推荐。
(1)假设现在有一个用户和电影评分的二维矩阵,矩阵内容是用户对电影的评分,现有得知某个用户对部分电影的评分,由此为该用户推荐他可能喜欢的电影。
(2)假设用户有100W,电影有100W部,那么对于任意一种推荐算法来说,这个数据量都很大,该问题无法在单机上进行运算解决;
(3)这100W维特征中必然存在一些几乎不重要的特征,这时,我们就需要用降维算法进行降维,降维的目的就是去掉大量的不重要的特征,以简化运算;
(4)在此例中,可以使用SVD(或SVD++)算法对矩阵进行降维
图片相似度
(1)通常,进行图片相似度判断首先会将图片通过傅里叶变换转换成数值代表的矩阵,矩阵代表着该图片,一般来说矩阵维数越高越精确
(2)同样,维数过高的情况下,相似度计算成本很高,因此同样需要降维,在图片相似度识别中常用的降维算法是PCA算法;
总之,降维的目的就是减少特征的维数,减少运算的成本。
以上皆为我的拙见,如有疑义请指正。
Ⅲ 豆瓣电影排名考前的,包含电影名字、导演、评分、评分人数、主演、编剧,有什么好的数据采集方式
可以根据你的需求采集豆瓣上的公开数据,也可以定制开发爬虫,某宝上的“楚江数据”可以快速解决;
Ⅳ 数据挖掘,有什么办法能从豆瓣影评中获取导演名字
中文的自然语言处理现在有一些主体识别的工具了,你可以查查看,就是那种可以从文档中识别出重要的人、物、事对应的词的工具。但是这也只能停留在把可能的人名挑出来,至于是不是导演,除非前面有提示是导演,否则你只能单独建立一个导演列表的数据库,然后匹配一下看看挑出来的人名是不是导演
Ⅳ 数据挖掘,情感分析,深度学习具体步骤是
有两大类,一类是主观性:主观、客观、中性;一类是情感倾向:褒义、贬义、中性。
文本分析的话,主要是对词、句子中观点的挖掘。
你所说的机器学习法,现在基本用于对电影观点的打分系统吧。基本上就是利用分类计数,对文档中存在的情感进行分类的。
就我个人理解而言,我认为机器学习法只是情感文本分析的方法论之一,至于数据挖掘,也是通过对文档的数据收取,进行情感分析的。也是对情感文本分析的方法论之一。
所以,情感分析是主体的话,文本分类、机器学习、数据挖掘都是方式方法。这些方法可以共同应用在一个情感分析中,也可以分别独立存在。
目前英文类的文本情感分析比较多,中文类的相对少一点,你要做这方面的研究路漫漫其修远啊。嘿嘿。
Ⅵ 已知某网站用户对电影评分数据(满分5分)。应用KNN算法预测哪位用户适合给小张推荐电影
已知某网站用户对电影评分数据(满分5分)。应用KNN算法预测哪位用户适合给小张推荐电影?
不要把手机关机
Ⅶ 怎么用python抓取豆瓣上用户对电影的评分
#!/usr/bin/env python2.7# encoding=utf-8"""
爬取豆瓣电影TOP250 - 完整示例代码
"""import codecsimport requestsfrom bs4 import BeautifulSoup
DOWNLOAD_URL = 'http://movie.douban.com/top250/'def download_page(url):
return requests.get(url, headers={ 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36'
}).contentdef parse_html(html):
soup = BeautifulSoup(html)
movie_list_soup = soup.find('ol', attrs={'class': 'grid_view'})
movie_name_list = [] for movie_li in movie_list_soup.find_all('li'):
detail = movie_li.find('div', attrs={'class': 'hd'})
movie_name = detail.find('span', attrs={'class': 'title'}).getText()
movie_name_list.append(movie_name)
next_page = soup.find('span', attrs={'class': 'next'}).find('a') if next_page: return movie_name_list, DOWNLOAD_URL + next_page['href'] return movie_name_list, Nonedef main():
url = DOWNLOAD_URL with codecs.open('movies', 'wb', encoding='utf-8') as fp: while url:
html = download_page(url)
movies, url = parse_html(html)
fp.write(u'{movies}\n'.format(movies='\n'.join(movies)))if __name__ == '__main__':
main()
Ⅷ 数据挖掘 | 数据理解和预处理
数据挖掘 | 数据理解和预处理
小编遇到过很多人(咳咳,请不要对号入座),拿到数据后不管三七二十一,先丢到模型中去跑,管它具体什么样呢,反正“大数据”嘛,总能整出点东西来。
但就像上次说过的,“大数据”很有可能带来“大错误”!所以在数据挖掘工作开始前,认真的理解数据、检查数据,对数据进行预处理是至关重要的。
很多人说,数据准备工作真是个“体力活”,耗时耗力不说,还异常的枯燥无味。这点小编承认,建模之前的数据处理确实是平淡的,它往往不需要多高的智商,多牛的编程技巧,多么高大上的统计模型。
但是,它却能时时触发你的兴奋点,因为它需要足够的耐心和细心,稍不留神就前功尽弃。
在这次的内容里,小编首先会从“数据理解”、“变量类型”和“质量检查”三个方面进行阐述,然后会以一个自己做过的实际数据为例进行展示。
一、数据理解
拿到数据后要做的第一步就是理解数据。
什么是理解数据呢?不是简单看下有多少Excel表,有多少行,多少列,而是要结合自己的分析目标,带着具体的业务需求去看。
首先,我们需要明确数据记录的详细程度,比方说某个网站的访问量数据是以每小时为单位还是每天为单位;一份销售数据记录的是每家门店的销售额还是每个地区的总销售额。
其次,我们需要确定研究群体。研究群体的确定一定和业务目标是密切相关的。
比方说,如果我们想研究用户对产品的满意度与哪些因素有关,就应该把购买该产品的所有客户作为研究群体;如果我们想研究用户的购买行为受哪些因素影响,就应该同时考察购买人群和非购买人群,在两类人群的对比中寻找关键因素。
研究群体的确定有时也和数据的详细程度有关。
比如我们想研究“观众影评”对“电影票房”的影响,我们既可以把“每部电影”看成一个个体,研究“影评总数”对“电影总票房”的影响,也可以把“每部电影每天的票房”看成一个个体,研究“每天的影评数”对“每天的电影票房”的影响。
具体选择哪一种取决于我们手上有什么样的数据,如果只有总票房和总影评数的数据,那我们只能选择第一种;如果有更详细的数据,那就可以考虑第二种方案。
需要注意的是,这两种方案还会影响我们对于模型的选择。
例如,如果研究“每天的影评数”对“每天电影票房”的影响,那每部电影又被细分为很多天,同一部电影不同时间的票房会有较高的相似性,这就形成了一种层次结构,可以考虑使用层次模型(hierarchical model)进行分析。
最后,当我们确定了研究目标和研究群体后,我们需要逐一理解每个变量的含义。有些变量和业务目标明显无关,可以直接从研究中剔除。
有些变量虽然有意义,但是在全部样本上取值都一样,这样的变量就是冗余变量,也需要从研究中剔除。
还有一些变量具有重复的含义,如“省份名称”和“省份简称”,这时只需要保留一个就可以了。
二、变量类型
所有变量按其测量尺度可以分成两大类,一类是“分类变量”,一类是“数值变量”。不同类型的变量在处理方法和后期的模型选择上会有显著差别。
【分类变量】
分类变量又称属性变量或离散变量,它的取值往往用有限的几个类别名称就可以表示了,例如“性别”,“教育程度”,“收入水平”,“星期几”等。细分的话,分类变量又可分为两类,一类是“名义变量”,即各个类别间没有顺序和程度的差别,就像“手机系统”中ios和安卓并没有明显的好坏差别,“电影类型”中“动作片”和“科幻片”也都是一样的,说不上哪个更好或更差。
另外一类是定序变量,即不同类别之间存在有意义的排序,如“空气污染程度”可以用“差、良、优”来表示、“教育程度”可以用“小学、初中、高中、大学”来表示。
当研究的因变量是分类变量时,往往对应特定的分析方法,我们在后面的章节会陆续讲到,这里暂且不谈。
当研究中的自变量是分类变量时,也会限制模型选择的范围。有些数据挖掘模型可以直接处理分类自变量,如决策树模型;但很多数据挖掘模型不能直接处理分类自变量,如线性回归、神经网络等,因此需要将分类变量转换成数值变量。
对于定序自变量,最常用的转换方法就是按照类别程度将其直接转换成数值自变量,例如将空气污染程度 “差、良、优”转换为“1,2,3”。
对于名义自变量,最常用的转换方法就是构造0-1型哑变量。例如,对于“性别”,可以定义“1=男,0=女”。
当某个名义变量有K个类别取值时,则需要构造K-1个哑变量。例如教育程度“小学,初中,高中,大学及以上”,可以构造三个哑变量分别为:x1:1=小学,0=其它;x2:1=初中,0=其它;x3:1=高中,0=其它。当x1,x2,x3三个哑变量取值都为0时,则对应着“大学及以上”。
需要注意的是,有时候名义变量的取值太多,会生成太多的哑变量,这很容易造成模型的过度拟合。
这时可以考虑只把观测比较多的几个类别单独拿出来,而把剩下所有的类别都归为“其它”。
例如,中国一共包含56个民族,如果每个民族都生成一个哑变量就会有55个,这时我们可以只考虑设置“是否为汉族”这一个0-1哑变量。
【数值变量】
我们再来看看数值变量。数值变量就是用数值描述,并且可以直接进行代数运算的变量,如“销售收入”、“固定资本”、“评论总数”、“访问量”、“学生成绩”等等都是数值变量。
需要注意的是,用数值表示的变量不一定就是数值型变量,只有在代数运算下有意义的变量才是数值型变量。
例如财务报表的年份,上市时间等,虽然也是用数值表示的,但我们通常不将它们按照数值型变量来处理。
上面我们讲到,分类变量通常要转换成数值型变量,其实有些时候,数值型变量也需要转换成分类变量,这就用到了“数据分箱”的方法。
为什么要进行数据分箱呢?通常有以下几个原因:
1. 数据的测量可能存在一定误差,没有那么准确,因此按照取值范围转换成不同类别是一个有效的平滑方法;
2.有些算法,如决策树模型,虽然可以处理数值型变量,但是当该变量有大量不重复的取值时,使用大于、小于、等于这些运算符时会考虑很多的情况,因此效率会很低,数据分箱的方法能很好的提高算法效率;
3.有些模型算法只能处理分类型自变量(如关联规则),因此也需要将数值变量进行分箱处理。
数据分箱后,可以使用每个分箱内的均值、中位数、临界值等作为这个类别的代表值,也可以直接将不同取值范围定义成不同的类别,如:将污染程度划分后定义为“低、中、高”等。
那如何进行数据分箱呢?常用的数据分箱的方法有:等宽分箱(将变量的取值范围划分成等宽的几个区间)、等频分箱(按照变量取值的分位数进行划分)、基于k均值聚类的分箱(将所有数据进行k均值聚类,所得的不同类别即为不同的分箱),还有一些有监督分箱方法,如:使分箱后的结果达到最小熵或最小描述长度等。这里不详细介绍了,有兴趣的童鞋可以自行网络。
三、质量检查
对数据中的各个变量有了初步了解后,我们还需要对数据进行严格的质量检查,如果数据质量不过关,还需要进行数据的清洗或修补工作。
一般来说,质量检查包括检查每个变量的缺失程度以及取值范围的合理性。
【缺失检查】
原始数据中经常会存在各种各样的缺失现象。
有些指标的缺失是合理的,例如顾客只有使用过某个产品才能对这个产品的满意度进行评价,一笔贷款的抵押物中只有存在房地产,才会记录相应的房地产的价值情况等。
像这种允许缺失的变量是最难搞的,因为我们很难判断它的缺失是合理的,还是由于漏报造成的。
但无论哪种情况,如果变量的缺失率过高,都会影响数据的整体质量,因为数据所反映的信息实在太少,很难从中挖掘到有用的东西。
对于不允许缺失的变量来说,如果存在缺失情况,就必须进行相应的处理。如果一个变量的缺失程度非常大,比方说达到了70%,那就考虑直接踢掉吧,估计没救了。
如果缺失比例还可以接受的话,可以尝试用缺失值插补的方法进行补救。
插补的目的是使插补值能最大可能的接近其真实的取值,所以如果可以从其他途径得到变量的真实值,那一定优先选择这种方法。
比如某个公司的财务信息中缺失了“最终控制人类型”和“是否国家控股”这两个取值,这些可以通过网上的公开信息得到真实值;再比如缺失了“净利润率”这个指标的取值,但是却有“净利润”和“总收入”的取值,那就可以通过变量间的关系得到相应的缺失值,即净利润率=净利润/总收入。
当然,更多的时候,我们无法得到缺失值的真实信息,这时就只能借用已有的数据来进行插补了。
对数值变量来说,可以用已观测值的均值、中位数来插补缺失值;对分类型变量来说,可以用已观测数据中出现比例最高的类别取值来进行插补。
这些方法操作起来非常简单,但它们都是对所有缺失值赋予了相同的取值,所以当缺失比例较大时,可能会扭曲被插补变量与其余变量的关系。
更复杂一点的,我们可以选择模型插补方法,即针对被插补变量和其它自变量之间的关系建立统计模型(如回归、决策树等),将模型预测值作为插补值。
如何处理缺失值是一个很大的研究课题,我们这里只是介绍了最简单可行的方法,有兴趣的读者可以参阅Little和Rubin 2002年的专著“Statistical Analysis with Missing Data”。
【变量取值合理性检查】
除了缺失外,我们还要考察每个变量的取值合理性。每个变量都会有自己的取值范围,比如“用户访问量”、“下载次数”一定是非负的,“投资收益率”一定在0~1之间。通过判断变量的取值是否超出它应有的取值范围,可以简单的对异常值进行甄别。
除了根据变量的取值范围来检查变量质量外,还可以根据变量之间的相互关系进行判断。例如一家公司的“净利润率”不应该大于“总利润率”等。
只有通过了各个方面检测的数据才是一份高质量的数据,才有可能带来有价值的模型结果。
四、实例分析——电影票房分析
最后,我们给出一个实例分析。在这个例子中,我们的目标是研究电影哪些方面的特征对电影票房有影响。
我们有两方面的数据,一是描述电影特征的数据,二是描述电影票房的数据。
由于我们关注的是北美的票房市场,所以描述电影特征的数据可以从IMDB网站得到,它是一个关于演员、电影、电视节目、电视明星和电影制作的在线数据库,里面可以找到每部上映电影的众多信息;电影每天的票房数据可以从美国权威的票房网站Box Office Mojo得到,上面记录了每部电影上映期间内每天的票房数据。
我们将从IMDB得到的数据放到“movieinfor.csv”文件中,将从Box Office Mojo中得到的数据放到“boxoffice.csv”文件中。
这里,我们以2012年北美票房市场最高的前100部电影为例进行讲解。下表给出了这两个数据集中包含的所有变量以及相应的解释。
在这两个数据中,movieinfor.csv数据的记录是精确到每部电影的,而boxoffice.csv数据精确到了每部电影中每天的票房数据,是精确到天的。上表中给出的变量中,除了电影名称和ID外,“电影类型”“MPAA评级”(美国电影协会对电影的评级)和“星期几”是分类型变量;“放映时长”、“制作预算”、“电影每天的票房”和“每天放映的影院数”是数值型变量。两份数据都不存在缺失值。
我们首先对两个数据集分别进行变量预处理,然后再根据电影ID将两个数据整合到一起。下面给出了每个变量的处理方法:
【电影类型】
电影类型是一个分类变量。在这个变量中我们发现每部电影都不止一个类型,例如“The Dark Knight Rises”这部电影就有“Action”、“Crime”和“Thriller”三个类型,并且它们以“|”为分隔符写在了一起。
同时,不同电影之间可能有相同的类型,也可能有不同的类型,例如票房排名第二的电影“Skyfall”,它的类型是“Action |Adventure |Thriller”。
因此,我们首先需要做的是把每部电影所属的类型逐一取出来,然后将所有出现过的类型分别形成一个0-1哑变量,如果这部电影在某个类型上出现了,则相应变量的取值就是1,否则是0.
通过上面一步,我们知道这个数据集中出现过的所有电影类型一共有11个。
那是不是按照之前所讲的,应该把它转换为10个哑变量呢?这里需要注意的是,所有的电影类型之间并不是互斥的(即有了action,就不能有其他的类型),所以我们无需因为共线性的原因去掉其中一个。
也就是说,如果把每一个电影类型单独作为一个独立的变量,可以衍生出11个新的0-1变量,这完全没有问题。但11个变量未免有点过多,所以我们根据不同电影类型的频数分布情况,只把出现次数明显较多的类型单独拿出来,最终生成了6个0-1型变量,分别为Adventure,Fantasy,Comedy,Action,Animation,Others。
【MPAA评级】
对于这个分类型变量,我们首先可以看一下数据中它所包含的全部取值,发现一共有“PG”,“PG-13”和“R”三个。
和上面的电影类型(Genre)不同,对于一部电影而言,它只能有一个MPAA取值。因此,在MPAA变量中,我们需要选择一个作为基准,将另外两个构造成哑变量。
例如,我们以“PG”为基准,构造的两个哑变量分别为PG13和R,如果这两个哑变量的取值同时为0,那就相当于电影的MPAA评级是PG。
【放映当天是星期几】
这个变量同MPAA评级一样,每部电影只能有一个取值。
如果它在星期一到星期日上都有取值的话,我们可以衍生出6个0-1型哑变量。
因为这里我们更关注周末和非周末对电影票房的影响,而并不关注具体是哪一天,所以我们将其进一步概括成一个变量,即“是否是周末”。
【放映时长和制作预算】
放映时长和制作预算这两个变量都是取值大于0的数值型变量,我们可以分别检查它们的取值是否在合理的范围内,然后直接保留它们的数值信息。
同时,对“制作预算”而言,假设我们这里关心的不是制作预算的具体数值,而是“小成本电影”和“大成本电影”的票房差异,那我们就可以将这个数值型变量进行分箱处理,转换为一个0-1型的分类变量,即 “是否为小成本电影”。
在决定按照什么标准来划分是否为小成本电影时,我们根据之前文献里的研究结果,将制作预算在100 million以下的电影看成是小成本电影。
上述所有变量的处理过程都可以使用R中最基本的语句(table,rep,which等)完成,由于篇幅限制,小编这里就不列出详细的code了,大家感兴趣的话,可以阅读狗熊会的“R语千寻”系列(戳这里),相信会在R语言的学习上受到更多启发。
最后,我们将所有新生成的变量按照电影ID整合到一起,就大功告成啦。
五、总结
最后总结一下,小编在这次内容中向大家介绍了拿到数据后的数据理解和预处理工作,内容虽然不难,但同样需要我们认真对待。就好像生活一样,只有踏踏实实走好前面的路,才有可能迎接后面的高潮迭起!
Ⅸ 数据分析的步骤是什么
1.问题定义
比较典型的场景是我们需要针对企业的数据进行分析,比如公司通常会有销售数据、用户数据、运营数据、产品生产数据……你需要从这些数据里获得哪些有用的信息,对策略的制定进行指导呢?又比如你需要做的是一份市场调研或者行业分析,那么你需要知道你需要获得关于这个行业的哪些信息。
首先你需要确定去分析的问题是什么?你想得出哪些结论?
比如某地区空气质量变化的趋势是什么?
王者荣耀玩家的用户画像是什么样的?经常消费的是那类人?
影响公司销售额增长的关键因素是什么?
生产环节中影响产能和质量的核心指标是什么?
如何对分析用户画像并进行精准营销?
如何基于历史数据预测未来某个阶段用户行为?
这些问题可能来源于你已有的经验和知识。比如你已经知道每周的不同时间用户购买量不一样,那么你可以通过分析得出销量和时间的精确关系,从而精准备货。又比如你知道北京最近几年的空气质量是在变坏的,可能的因素是工厂排放、沙尘暴、居民排放、天气因素等,那么在定义问题的时候你就需要想清楚,需要针对哪些因素进行重点分析。
有些问题则并不清晰,比如在生产环节中,影响质量的核心指标是什么,是原材料?设备水平?工人水平?天气情况?某个环节工艺的复杂度?某项操作的重复次数?……这些可能并不明显,或者你是涉足新的领域,并没有非常专业的知识,那么你可能需要定义的问题就需要更加宽泛,涵盖更多的可能性。
问题的定义可能需要你去了解业务的核心知识,并从中获得一些可以帮助你进行分析的经验。从某种程度上说,这也是我们经常提到的数据思维。数据分析很多时候可以帮助你发现我们不容易发现的相关性,但对问题的精确定义,可以从很大程度上提升数据分析的效率。
如何更好地定义问题?
这就需要你在长期的训练中找到对数据的感觉,开始的时候你拿到特别大的数据,有非常多的字段,可能会很懵逼,到底应该从什么地方下手呢?
但如果有一些经验就会好很多。比如,你要研究影响跑步运动员速度的身体因素,那么我们可能会去研究运动员的身高、腿长、体重、甚至心率、血压、臂长,而不太会去研究运动员的腋毛长度,这是基于我们已有的知识。又比如我们要分析影响一个地方房价的因素,那么我们可能会有一些通用的常识,比如城市人口、地理位置、GDP、地价、物价水平,更深入的可能会有产业格局、文化状态、气候情况等等,但一般我们不会去研究城市的女孩长相,美女占比。
所以当你分析的问题多了之后,你就会有一些自己对数据的敏感度,从而养成用数据分析、用数据说话的习惯。这个时候你甚至可以基于一些数据,根据自己的经验做出初步的判断和预测(当然是不能取代完整样本的精准预测),这个时候,你就基本拥有数据思维了。
2.数据获取
有了具体的问题,你就需要获取相关的数据了。比如你要探究北京空气质量变化的趋势,你可能就需要收集北京最近几年的空气质量数据、天气数据,甚至工厂数据、气体排放数据、重要日程数据等等。如果你要分析影响公司销售的关键因素,你就需要调用公司的历史销售数据、用户画像数据、广告投放数据等。
数据的获取方式有多种。
一是公司的销售、用户数据,可以直接从企业数据库调取,所以你需要SQL技能去完成数据提取等的数据库管理工作。比如你可以根据你的需要提取2017年所有的销售数据、提取今年销量最大的50件商品的数据、提取上海、广东地区用户的消费数据……,SQL可以通过简单的命令帮你完成这些工作。
第二种是获取外部的公开数据集,一些科研机构、企业、政府会开放一些数据,你需要到特定的网站去下载这些数据。这些数据集通常比较完善、质量相对较高。当然这种方式也有一些缺陷,通常数据会发布的比较滞后,但通常因为客观性、权威性,仍然具有很大的价值。
第三种是编写网页爬虫,去收集互联网上的数据。比如你可以通过爬虫获取招聘网站某一职位的招聘信息,爬取租房网站上某城市的租房信息,爬取豆瓣评分评分最高的电影列表,获取知乎点赞排行、网易云音乐评论排行列表。基于互联网爬取的数据,你可以对某个行业、某种人群进行分析,这算是非常靠谱的市场调研、竞品分析的方式了。
当然,比较BUG的一点是,你通常并不能够获得所有你需要的数据,这对你的分析结果是有一定影响的,但不不影响的是,你通过有限的可获取的数据,提取更多有用的信息。
3.数据预处理
现实世界中数据大体上都是不完整,不一致的脏数据,无法直接进行数据分析,或分析结果差强人意。数据预处理有多种方法:数据清理,数据集成,数据变换,数据归约等。把这些影响分析的数据处理好,才能获得更加精确地分析结果。
比如空气质量的数据,其中有很多天的数据由于设备的原因是没有监测到的,有一些数据是记录重复的,还有一些数据是设备故障时监测无效的。
那么我们需要用相应的方法去处理,比如残缺数据,我们是直接去掉这条数据,还是用临近的值去补全,这些都是需要考虑的问题。
当然在这里我们还可能会有数据的分组、基本描述统计量的计算、基本统计图形的绘制、数据取值的转换、数据的正态化处理等,能够帮助我们掌握数据的分布特征,是进一步深入分析和建模的基础。
4.数据分析与建模
在这个部分需要了解基本的数据分析方法、数据挖掘算法,了解不同方法适用的场景和适合的问题。分析时应切忌滥用和误用统计分析方法。滥用和误用统计分析方法主要是由于对方法能解决哪类问题、方法适用的前提、方法对数据的要求不清等原因造成的。
另外,选择几种统计分析方法对数据进行探索性的反复分析也是极为重要的。每一种统计分析方法都有自己的特点和局限,因此,一般需要选择几种方法反复印证分析,仅依据一种分析方法的结果就断然下结论是不科学的。
比如你发现在一定条件下,销量和价格是正比关系,那么你可以据此建立一个线性回归模型,你发现价格和广告是非线性关系,你可以先建立一个逻辑回归模型来进行分析。
一般情况下,回归分析的方法可以满足很大一部分的分析需求,当然你也可以了解一些数据挖掘的算法、特征提取的方法来优化自己的模型,获得更好地结果。
5.数据可视化及数据报告的撰写
分析结果最直接的结果是统计量的描述和统计量的展示。
比如我们通过数据的分布发现数据分析工资最高的5个城市,目前各种语言的流行度排行榜,近几年北京空气质量的变化趋势,避孕套消费的地区分布……这些都是我们通过简单数据分析与可视化就可以展现出的结果。
另外一些则需要深入探究内部的关系,比如影响产品质量最关键的几个指标,你需要对不同指标与产品质量进行相关性分析之后才能得出正确结论。又比如你需要预测未来某个时间段的产品销量,则需要你对历史数据进行建模和分析,才能对未来的情况有更精准的预测。
数据分析报告不仅是分析结果的直接呈现,还是对相关情况的一个全面的认识。我们经常看到一些行业分析报告从不同角度、深入浅析地剖析各种关系。所以你需要一个讲故事的逻辑,如何从一个宏观的问题,深入、细化到问题内部的方方面面,得出令人信服的结果,这需要从实践中不断训练。
数据分析的一般流程总的来说就是这几个步骤:问题定义、数据获取、数据预处理、数据分析与建模、数据可视化与数据报告的撰写。
Ⅹ 如何用聚类取把电影评分数据集分类
聚类分析指将物理或抽象对象的集合分组为由类似的对象组成的多个类的分析过程。它是一种重要的人类行为。
聚类分析的目标就是在相似的基础上收集数据来分类。聚类源于很多领域,包括数学,计算机科学,统计学,生物学和经济学。在不同的应用领域,很多聚类技术都得到了发展,这些技术方法被用作描述数据,衡量不同数据源间的相似性,以及把数据源分类到不同的簇中。