数据挖掘
不论如何未来很美好
这个作者很懒,什么都没留下…
展开
-
数据挖掘——无量纲化
在进行特征选择之前,一般会先进行数据无量纲化处理,这样,表征不同属性(单位不同)的各特征之间才有可比性,如1cm 与 0.1kg 你怎么比?无量纲处理方法很多,使用不同的方法,对最终的机器学习模型会产生不同的影响。本文将对常用的无量纲化技术进行总结,试图指出他们的适用场景,并给出在Python中的相应调用方式。正文中每列代表一个 属性/特征,每行表示一个/条 样本。1.min-max归一化...转载 2019-03-25 20:13:23 · 9179 阅读 · 0 评论 -
(详细)数据挖掘面试笔试题及答案
一、单选题(共80题)( D )的目的缩小数据的取值范围,使其更适合于数据挖掘算法的需要,并且能够得到和原始数据相同的分析结果。A.数据清洗 B.数据集成C.数据变换 D.数据归约某超市研究销售纪录数据后发现,买啤酒的人很大概率也会购买尿布,这种属于数据挖掘的哪类问题?(A) A. 关联规则发现 B. 聚类 C. 分类 ...转载 2018-08-22 21:48:11 · 9364 阅读 · 0 评论 -
简单矩阵乘法
矩阵相乘就是两个相乘或多个矩阵连乘: 1:判断两个矩阵A和B是否可以相乘 A的列 = B的行 (保证每个数据能有对应的数据相乘)2:使用A的每行乘B的每列 3:得到A行B列格式的新矩阵 图片借用了百度经验的图(懒得画了)...原创 2018-08-10 11:50:36 · 1747 阅读 · 0 评论 -
数据挖掘中机器学习如何选择合适的算法
最近看了一些资料,许多细的知识在这里总结一下,入门者也可以作为一个参考,关于在数据挖掘中我们应该选择哪种算法。当然这个问题我在前面的一篇文章中已经有过介绍 官方小纸条,这个参考性是可靠的。这里的介绍作为一个更为详细的补充和说明。补充下面四个小知识: 监督学习:利用样本输入和期望输出来学习如何预测的技术。 无监督学习:利用带有正确答案的样本数据进行训练,目的是要在一组数据...原创 2018-07-26 11:51:08 · 1877 阅读 · 0 评论 -
2018岗位招聘信息、薪资待遇详细分析——数据分析
开头简单介绍下:本文章主要内容为利用网络爬虫与数据分析对2018年的所有招聘岗位信息进行了统一清洗、合并、分析、可视化,而本篇文章重点介绍分析和可视化。获取数据的爬虫文章在前面有介绍。大三快要完了,马上就要面临实习的问题了,所以这里完成这个项目也是为后面的工作方向有一个比较清晰的认知。写成文章也是旨在希望有同样需要的朋友能获取到有帮助的信息,对目前2018年的行业人才需求有一个大概的了解,选择...原创 2019-06-14 14:48:17 · 20123 阅读 · 42 评论 -
如何给numpy矩阵添加行、列
有很多种方法可以实现为numpy添加数据:方法1import numpy as npa = np.array([[1,2,3],[4,5,6],[7,8,9]])b = np.array([[0,0,0]])c = np.r_[a,b]d = np.c_[a,b.T]print cprint d [[1 2 3] [4 5 6] [7 8 9] [0 0 0]]...转载 2018-07-23 12:21:56 · 9958 阅读 · 0 评论 -
wordcloud画不重复的词云图
python通过使用wordcloud我们能够画出词云图,下面简单说下wordcloud的使用包括重复的处理由于使用pip install直接安装会报错,相关依赖关系,所以这里我直接使用的whl文件来安装下载地址点这里,选择你所对应的版本。pip install xxx.whl 安装就行了,下面我们说说使用。from wordcloud import WordCloud,STOPWORDS,...原创 2018-06-10 19:39:30 · 5736 阅读 · 3 评论 -
pandas重置DataFrame或Series的索引index
当我们在清洗数据时往往会将带有空值的行删除,不论是DataFrame还是Series的index都将不再是连续的索引了,那么这个时候我们可以使用reset_index()方法来重置它们的索引,以便后续的操作。具体例子:import pandas as pdimport numpy as npdf = pd.DataFrame(np.arange(20).reshape(5,4),index=[...原创 2018-06-10 12:46:19 · 144110 阅读 · 13 评论 -
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any()
在使用pandas判断数据时出现错误提示:ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().个人理解:这是因为,你将一个值与多个值或一个列表中的值相比较、匹配,导致的问题看提示,我们可以知道,在比较前,我们可以使用它推荐的某个方法:a.e...原创 2018-06-10 10:46:11 · 88395 阅读 · 0 评论 -
jieba分词完整文档
jieba“结巴”中文分词:做最好的 Python 中文分词组件"Jieba" (Chinese for "to stutter") Chinese text segmentation: built to be the best Python Chinese word segmentation module.Scroll down for English documentation.特点支持三种分...转载 2018-06-09 19:14:07 · 5387 阅读 · 0 评论 -
使用sklearn的cross_val_score进行交叉验证
在构建模型时,调参是极为重要的一个步骤,因为只有选择最佳的参数才能构建一个最优的模型。但是应该如何确定参数的值呢?所以这里记录一下选择参数的方法,以便后期复习以及分享。(除了贝叶斯优化等方法)其它简单的验证有两种方法:1、通过经常使用某个模型的经验和高超的数学知识。2、通过交叉验证的方法,逐个来验证。很显然我是属于后者所以我需要在这里记录一下sklearn 的 cross_val_sc...原创 2018-06-15 18:21:36 · 145960 阅读 · 69 评论 -
pandas通过loc生成新的列
pandas中一个很便捷的使用方法通过loc、iloc、ix等索引方式,这里记录一下:df.loc[条件,新增列] = 赋初始值如果新增列名为已有列名,则在原来的数据列上改变import pandas as pdimport numpy as npdata = pd.DataFrame(np.random.randint(0,100,40).reshape(10,4),colu...原创 2018-05-29 21:43:53 · 6455 阅读 · 0 评论 -
分类性能度量指标:ROC曲线、AUC值、正确率、召回率、敏感度、特异度
在分类任务中,人们总是喜欢基于错误率来衡量分类器任务的成功程度。错误率指的是在所有测试样例中错分的样例比例。实际上,这样的度量错误掩盖了样例如何被分错的事实。在机器学习中,有一个普遍适用的称为混淆矩阵(confusion matrix)的工具,它可以帮助人们更好地了解分类中的错误。比如有这样一个在房子周围可能发现的动物类型的预测,这个预测的三类问题的混淆矩阵如下表所示:利用混淆矩阵可以...转载 2018-08-21 14:09:31 · 8934 阅读 · 0 评论 -
简述——python使用sklearn画ROC曲线
使用sklearn的一系列方法后可以很方便的绘制处ROC曲线,这里简单实现以下。主要是利用混淆矩阵中的知识作为绘制的数据(如果不是很懂可以先看看这里的基础): tpr(Ture Positive Rate):真阳率 图像的纵坐标 fpr(False Positive Rate):阳率(伪阳率) ...原创 2018-08-21 22:53:25 · 24678 阅读 · 4 评论 -
numpy的nonzero()和logical_and/or/not()
由于最近学习的资料频繁出现numpy中的两个方法:nonzero()和logical_and/or/not()两个用于判断的函数。由于觉得确实很方便(如果不使用pandas处理数据),所以这里对两个方法做一个记录,以便后面的使用参考。np.nonzero(参数): no.nonzero()函数是numpy中用于得到数组array中非零元素的位置(数组索引)的函数,很适合用来对数据下标...原创 2018-09-02 20:44:05 · 2013 阅读 · 0 评论 -
偏度(skewness)和峰度(kurtosis)
偏度偏度(skewness),是统计数据分布偏斜方向和程度的度量,是统计数据分布非对称程度的数字特征。定义上偏度是样本的三阶标准化矩。偏度定义中包括正态分布(偏度=0),右偏分布(也叫正偏分布,其偏度>0),左偏分布(也叫负偏分布,其偏度<0)。Python代码实现方法:pandas的Series 数据结构可以直接调用skew()方法来查看df.iloc[...转载 2019-03-19 20:32:55 · 145340 阅读 · 3 评论 -
Windows下Python3.6安装 fbprophet库
近来,Facebook开源了基于 Python 和 R 语言的 时间序列数据预测工具——“Prophet”。官方号称“让普通人也能像数据分析师一样得出专业的结论”。我觉得可能有点悬,因为很多人都被卡在了第一步——安装借用一句话:Windows用户们请相信我,只要你按照官方的步骤来:你会发现啥都装不上!有点夸张,但通常官方的安装方式确实都很麻烦又解决不了问题。这里我也遇到了一...原创 2018-11-13 22:53:36 · 5916 阅读 · 10 评论 -
模型评估方法(混淆矩阵)
在数据挖掘或机器学习建模后往往会面临一个问题,就是该模型是否可靠?可靠性如何?也就是说模型的性能如何我们暂时不得而知。如果模型不加验证就使用,那后续出现的问题将会是不可估计的。所以通常建模后我们都会使用模型评估方法进行验证,当验证结果处于我们的可控范围之内或者效果更佳,那该模型便可以进行后续的进一步操作。这里又将面临一个新的问题——如何选择评估方法,其实通常很多人都会使用比较简单的错误率来...原创 2018-11-11 12:38:00 · 11510 阅读 · 0 评论 -
逻辑回归中如何应用梯度下降算法与损失函数
前面一篇博客介绍了关于梯度下降算法来由以及说明了为什么梯度的负方向就是梯度下降最快方向,本文将会在上文的知识下简述在逻辑回归(Logistic Regression)中为什么可以使用以及如何使用梯度下降算法。梯度下降算法是个比较简单容易理解的算法,就像吴老师或很多资料上记载的一样:每次从新起点寻找一个到达目的地最快的方向并移动一定距离,以此重复直到终点。对于目标函数是凸函数,则可以到达全局最优...原创 2018-11-01 22:54:05 · 7872 阅读 · 2 评论 -
标准化、归一化、中心化
标准化、归一化、中心化数据分析及挖掘中常提到的几个概念(数据的 标准化、归一化、中心化),虽然经常在用,但可能还是有一些比较生僻的知识容易搞混淆,所以在十月国庆大家都出门上高速堵车的时候抽了点时间对这些概念以我的能力和理解做一个相对系统和浅显的总结。本篇文章通过个人以前对这些知识的一个先验理解,然后主要查阅和参考了数篇相关知识文档的介绍后,做了如下的总结。(注:尤其是标准化、归一化极容易混...原创 2018-10-01 23:22:52 · 11370 阅读 · 3 评论 -
TF-IDF及相关知识(余弦相似性)
自然语言的处理是一个神奇的领域,它涉及到数据挖掘、文本处理、信息检索等很多计算机前沿领域,由于复习相关知识,所以这里对该方向的部分知识做一个简单的介绍和记录。该文主要记录的是一个很简单却很经典有效的算法——TF-IDF。从它的概念到运算可能花不了10分钟就能了解,并且用到的运算知识都不涉及高等数学,但往往能返回我们一个满意的答案。当我们输入一段检索信息时,可以利用TF-IDF算法,给我们返...原创 2018-09-15 15:42:15 · 2858 阅读 · 3 评论 -
Pandas的qcut()与cut()
>>> factors = np.random.randn(9)[ 2.12046097 0.24486218 1.64494175 -0.27307614 -2.11238291 2.15422205 -0.46832859 0.16444572 1.52536248]pd.qcut()qcut是根据这些值的频率来选择箱子的均匀间隔,即每个箱子中含有的数的数...转载 2018-09-07 13:39:32 · 3975 阅读 · 0 评论 -
Bagging和Boosting(偏差与方差)
机器学习中的集成学习有两个重要的策略,即Bagging与Boosting。Bagging: 算法构建多个分类器,每个分类器都随机从原样本中做有放回的抽样,利用这些采样后的样本训练该分类器,然后将这些分类器组合起来构成一个更强效果更好的组合分类器,结果一般使用多数投票效果就很好了。其代表算法为随机森林。Boosting: 算法通过迭代构建一系列的分类器,每次分类都将上一次...原创 2018-09-07 09:29:39 · 8723 阅读 · 0 评论 -
PCA(explained_variance_ratio_与explained_variance_)
之前有写过关于PCA的原理和代码实现,但是对于sklearn中的PCA没有做过多的描述,所以这里转载一篇文章作为补充:这里提一点:pca的方法explained_variance_ratio_计算了每个特征方差贡献率,所有总和为1,explained_variance_为方差值,通过合理使用这两个参数可以画出方差贡献率图或者方差值图,便于观察PCA降维最佳值。再提醒一点:pca中的参数选项...转载 2018-09-09 15:21:12 · 34051 阅读 · 14 评论 -
绘制学习曲线——plot_learning_curve
学习曲线:一种用来判断训练模型的一种方法,通过观察绘制出来的学习曲线图,我们可以比较直观的了解到我们的模型处于一个什么样的状态,如:过拟合(overfitting)或欠拟合(underfitting)先来看看如何解析学习曲线图:要看深刻了解上面的图形意义,你需要了解偏差(bias)、方差(variance)对于训练模型的意义,可以参考这里,当你了解后,我们来看看上面的图形代表的意义:(...原创 2018-09-09 12:50:35 · 45035 阅读 · 6 评论 -
数据平滑处理——log1p()和exmp1()
今天在做题的时候学到了一点有用的东西,所以这里做个记录分享一下,有关数据预处理的两个函数问题——log1p、expm1优点:在数据预处理时首先可以对偏度比较大的数据用log1p函数进行转化,使其更加服从高斯分布,此步处理可能会使我们后续的分类结果得到一个更好的结果; 平滑处理很容易被忽略掉,导致模型的结果总是达不到一定的标准,同样使用逼格更高的log1p能避免复值得问题——复值指一个自变...原创 2018-09-05 14:58:53 · 37490 阅读 · 2 评论 -
python 箱线图
本来打算自己写的,但是发现网上的资料都挺全面的,所以这里直接找了一篇借鉴了。不过补充几点:1:箱线图的优点:受异常值的影响不大,所以在做数据分析时会经常用到2:可以直接使用pandas自带的工具来画,df.boxplot()一、箱线图概念 箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。 计算过程:(1)计算上四分位数(Q3...转载 2018-06-11 16:40:07 · 7756 阅读 · 0 评论 -
pandas转换int型为str型
今天在数据分析时遇到了一个小问题,这时才发现自己的基础知识真的不牢固,所以这里记录一下解决方法问题:我在处理完数据后得到的是一个列表,其中放入的是很多的元组,这时需要从元组中筛选数据保存为csv文件,但是我的数据都是int型的,所以我简单的使用了一个循环wf.write('{},{}\n'.format(str(item[0][0]),str(item[0][1]))),通过str来转换保存为st...原创 2018-05-22 22:52:18 · 29211 阅读 · 5 评论 -
pandas用groupby后对层级索引levels的处理
层及索引levels,刚开始学习pandas的时候没有太多的操作关于groupby,仅仅是简单的count、sum、size等等,没有更深入的利用groupby后的数据进行处理。近来数据处理的时候有遇到这类问题花了一点时间,所以这里记录以及复习一下:(以下皆是个人实践后的理解)我使用一个实例来讲解下面的问题:一张数据表中有三列(动物物种、物种品种、品种价格),选出每个物种从大到小品种的前两种,最后...原创 2018-05-27 12:32:23 · 32665 阅读 · 6 评论 -
简单解释标准差
恶心人的数据分析:标准差能反映一个数据集的离散程度。方差单位和数据的单位不一致,没法使用。标准差和数据的单位一致,使用起来方便。数据集:[2、3、4、5、6]1:求平均数 (2+3+4+5+6)/5 = 20/5 = 42:求每个数与平均值 的差平方 的和 (2-4)^2 + (3-4)^2 + (4-4)^2 + (5-4)^2 + (6-4)^2 = 103:用差平...原创 2018-04-23 19:27:36 · 6182 阅读 · 1 评论 -
scrapy的xpath无法匹配tbody标签
刚才在使用scrapy的xpath时遇到了一点问题,个人觉得很有意思,也是在无意中发现的,认为是个坑,也是个很有意思的问题,所以这里做个介绍和笔记。问题:使用scapy的xpath在匹配<tbody>位置时无法获取。(使用浏览器自带copy的xpach)我使用的charm浏览器,在检查元素时,直接copy了它的xpath表达式。但是当运行时,却始终没有获取到目的信息。使用它的表达式,你...原创 2018-04-18 16:24:16 · 5103 阅读 · 6 评论 -
绘制地图:图形化显示海地地震危机数据
再修改部分代码后,可执行代码如下:from mpl_toolkits.basemap import Basemapfrom pandas import DataFrame,Seriesimport pandas as pdimport numpy as npimport matplotlib.pyplot as pltdef to_cat_list(catstr): str...原创 2018-04-04 16:10:49 · 1081 阅读 · 0 评论 -
错误、不一致数据处理(fuzzywuzzy函数的使用)
继前面几天的比赛后的又一场比赛(简单的数据处理)其一:做个学习的资料记录。其二:分享出来,供大家参考。这是关于 当数据中存在差异数据或者输入错误的不一致数据的处理 的问题。简单说一部分:有时候当我们在处理数据时,其中包含有一些大小写不一致,或者字母拼写有问题的错误,为了得到更为精确的数据集,我们需要对这部分的异常数据进行处理。import pandas as pd #导入相关的模块...原创 2018-04-02 19:55:25 · 7587 阅读 · 0 评论 -
python文件的编码和解码以及chardet模块使用
继上一篇文章后的一次比赛心得。其一:做个学习的资料记录。其二:分享出来,供大家参考。这是关于 文件进行编码处理后同过python解码认知的问题。首先我们应该知道æ–‡å—化ã??、����������等都是需要使用编码才能解读的字符,如果不使用正确的编码格式,那么始终无法进行字符的解读。我们看一个例子:before = "I'd recommend $, #, 你好 and नमस्ते" ...原创 2018-04-01 20:38:44 · 3256 阅读 · 0 评论 -
《利用Python进行数据分析》 实例:USDA食品数据库
USDA食品数据库:from pandas import DataFrame,Seriesfrom pylab import *import pandas as pdimport jsondef groupby(ndata): result = ndata.groupby(['nutrient','groupp'])['value'].quantile(0.5) result['Zi...原创 2018-03-24 13:48:18 · 2433 阅读 · 5 评论 -
pandas的to_datetime时间转换使用方法以及学习的心得
昨天在网赛中做了一道题,虽然是外国人的Englis题目,但是内容很有学习的价值,值得仔细的学习,今天就把我所收获的一部分记录下来。其一:做个学习的资料记录。其二:分享出来,供大家参考。(收获了对处理大数据的又一次认识!!!)这是一道将DataFrame的日期数据转换为python能认识的题目。这里重点讲一下to_datetime的部分使用。首先说一下:1/17/07 has the format ...原创 2018-03-29 19:15:13 · 132586 阅读 · 9 评论 -
大数据、数据分析、数据统计、数据挖掘、OLAP的区别
大数据、数据分析、数据统计、数据挖掘、OLAP的区别 在大数据领域里,经常会看到例如数据挖掘、OLAP、数据分析等等的专业词汇。如果仅仅从字面上,我们很难说清楚每个词汇的意义和区别。今天,我们就来通过一些大数据在高校应用的例子,来为大家说明白—数据挖掘、大数据、OLAP、数据统计的区别。 一、数据分析 数据分析是一个大的概念,理论上任何对数据进行计算、处理从而得出一些有意义的结论的过程,都叫...转载 2018-03-18 11:45:26 · 1002 阅读 · 0 评论 -
pandas的DataFrame、Series删除列
Series方法与DataFrame差不多,这里只介绍后者如何使用,前者相似。df = pd.DataFrame(np.arange(12).reshape(3,4),columns=['A', 'B', 'C', 'D'])In [4]: dfOut[4]: A B C D0 0 1 2 31 4 5 6 72 8 9 10 11...原创 2018-04-24 10:59:01 · 44660 阅读 · 3 评论 -
pandas中loc、iloc、ix的区别和使用
在利用pandas处理数据时loc、iloc、ix对数据的操作很频繁,所以这里简单的介绍一下它们之间的区别和各自的使用。pandas的索引可归纳为3种.loc,标签索引 (location).iloc,位置索引 (int-localtion).ix,标签与位置混合索引 对于ix先按标签索引尝试操作,然后再按照位置索引尝试操作注意 D...原创 2018-04-21 16:05:28 · 1349 阅读 · 0 评论 -
pandas修改DataFrame或Series的列名
在pandas中列名多我们来说很重要,因为它是数据集的一个索引标志,通过利用它可以准确定位信息。但是有时我们在某种条件下需要修改列名或序列名,不论是DataFrame还是Series:Series修改序列名:In [19]: k = pd.Series({'a':np.random.randint(10,size=5)})In [20]: kOut[20]:a [7, 9, 0, 9, ...原创 2018-04-21 16:20:30 · 30620 阅读 · 3 评论