数据科学
盐味橙汁
这个作者很懒,什么都没留下…
展开
-
数据科学家访谈录笔记——在成为数据科学家之际
在成为数据科学家之际为什么需要沟通能力和讲故事的能力你需要把从数据中分析得到的东西告诉别人,让更多并没有参与到这个研究过程的人也知道结论是什么。创造一个有信服力并且精彩的故事,同时要保证故事尊重数据事实,这可不是一件容易的事情。用简练的语言解释一些东西之所以困难,是因为他需要同理心。你需要理解那些非常复杂以及学术性的东西,但同时你需要对一些完全没有技术背景的人讲述这一切。你必须要清楚他...原创 2018-08-14 23:18:07 · 234 阅读 · 0 评论 -
Matplotlib学习笔记——绘制误差线
绘制误差线 对任何一种科学测量方法来说,准确的衡量数据误差都是无比重要的事情,甚至比数据本身还重要.在数据可视化的结果中用图形将误差有效的显示出来,就可以提供更充分的信息.基本误差线#以下代码在notebook中执行%matplotlib inlineimport matplotlib.pyplot as pltimport numpy as npplt.styl...原创 2018-08-16 17:09:57 · 11160 阅读 · 0 评论 -
Matplotlib学习笔记——密度线与等高线
密度线与等高线 在二维图上用等高线或者彩色图来表示三维数据是个不错的方法。Matplotlib提供了三个函数来解决这个问题:用plt.contour()绘制等高线、用plt.contourf绘制带有填充颜色的等高线图、用plt.imshow显示图形。plt.contour()函数#生成第三维数据的自定义函数def f(x,y): return np.sin(x)...原创 2018-08-16 17:49:19 · 3892 阅读 · 0 评论 -
Scikit-Learn学习笔记——学会调用sklearn评估器API
sklearn初探 机器学习的本质就是借助数学模型理解数据。当我们给模型装上可以适应观测数据的可调参数时,学习就开始了,此时的程序被认为具有从数据中“学习”的能力。一旦模型可以拟合旧的观测数据,那么它们就可以预测并解释新的观测数据。 目前,python有不少可以实现各种机器学习算法的程序库。Scikit-Learn是最流行的程序包之一,它为各种常见机器学习算法提供了高效版本。Sc...原创 2018-08-19 20:12:15 · 2348 阅读 · 0 评论 -
Scikit-Learn学习笔记——手写数字(MNIST)探索
手写数字(MNIST)探索#加载并可视化手写数字import matplotlib.pyplot as pltfrom sklearn.datasets import load_digitsdigits = load_digits()digits.images.shapefig, axes = plt.subplots(10,10, figsize=(8, 8),subplo...原创 2018-08-19 21:35:52 · 4946 阅读 · 0 评论 -
Matplotlib学习笔记——频次直方图、数据区间划分和分布密度
频次直方图、数据区间划分和分布密度%matplotlib inlineimport numpy as npimport matplotlib.pyplot as pltplt.style.use('seaborn-white')data = np.random.randn(1000)#最基本的频次直方图命令plt.hist(data)#调节具体参数#bins调节横坐...原创 2018-08-17 10:00:49 · 56525 阅读 · 0 评论 -
Matplotlib学习笔记——配置图例
配置图例简单的图例import matplotlib.pyplot as pltplt.style.use('classic')%matplotlib inlineimport numpy as npx = np.linspace(0, 10, 1000)fig, ax = plt.subplots()ax.plot(x, np.sin(x), '-b', label...原创 2018-08-17 10:33:18 · 5236 阅读 · 0 评论 -
Matplotlib学习笔记——创建多子图
创建多子图 有时候需要从多个角度对数据进行对比。Matplotlib为此提出了子图的概念:在较大的图形中同时放置一组较小的坐标轴。这些子图可能是画中画、网格图,或者是其他更复杂的布局形式。plt.axes:手动创建子图 创建坐标轴的最基本的方法就是使用plt.axes 函数。这个函数的默认配置是创建一个标准的坐标轴,填满整张图。它还有一个可选参数,由图形坐标系统的四个值构...原创 2018-08-17 11:14:06 · 4926 阅读 · 0 评论 -
Matplotlib学习笔记——画三维图
用Matplotlib画三维图 最基本的三维图是由(x, y, z)三维坐标点构成的线图与散点图,可以用ax.plot3D和ax.scatter3D函数来创建,默认情况下,散点会自动改变透明度,以在平面上呈现出立体感三维的线图和散点图#绘制三角螺旋线from mpl_toolkits import mplot3d%matplotlib inlineimport ma...原创 2018-08-17 17:20:28 · 73387 阅读 · 12 评论 -
Matplotlib学习笔记——盒型图(boxplot)
盒型图(boxplot)最近在摆弄数据离散度的时候遇到一种图形,叫做盒图(boxplot)。它对于显示数据的离散的分布情况效果不错。盒图是在1977年由美国的统计学家约翰·图基(John Tukey)发明的。它由五个数值点组成:最小值(min),下四分位数(Q1),中位数(median),上四分位数(Q3),最大值(max)。也可以往盒图里面加入平均值(mean)。如上图。下四分位数、...转载 2018-08-17 19:07:16 · 6131 阅读 · 0 评论 -
用Seaborn做数据可视化
用Seaborn做数据可视化 Seaborn在Matplotlib的基础上开发了一套API,为默认的图形样式和颜色提供了理智的选择,为常用的统计图形定义了许多简单的高级函数,并与Pandas DataFrame的功能有机结合。Seaborn不仅有许多高级的画图功能,而且可以改写Matplotlib的默认参数,从而用简单的Matplotlib脚本获得更好的效果。Seaborn的主要思想是用高...原创 2018-08-17 19:39:24 · 1007 阅读 · 0 评论 -
Scikit-Learn学习笔记——模型验证与超参数网格搜索
超参数与模型验证 模型验证就是在选择模型和超参数之后,通过对训练数据进行学习,对比模型对已知数据的预测值与实际值的差异。模型验证的正确方法是使用留出集评估模型性能,即先从训练模型中的数据中留出一部分,然后用这部分留出来的数据检验模型性能。 但是,使用留出集使得模型失去了一部分训练机会,解决这个问题的方法是交叉验证,也就是做一组拟合,让数据的每个子集既是训练集,又是验证集。...原创 2018-08-20 17:25:00 · 1476 阅读 · 0 评论 -
Scikit-Learn学习笔记——特征工程
特征工程 工程中的数据挖掘用到的数据很少拥有干净的特征矩阵——很多特征的取值是非数值的,这些特征不能直接被计算机直接用于计算。因此,机器学习实践中更重要的步骤之一是特征工程——找到与问题有关的任何信息,把它们转换成特征矩阵的数值。分类特征 一种常见的非数值特征是分类数据。例如,浏览房屋数据的时候,除了看到“房价”(price)和“面积”(square)之类的数值特征,还会...原创 2018-08-20 19:25:23 · 352 阅读 · 0 评论 -
Scikit-Learn学习笔记——朴素贝叶斯
朴素贝叶斯 朴素贝叶斯模型是一组非常简单快速的分类方法啊,通常适用于维度非常高的数据集。因为运行速度快,而且可调参数少,因此非常适合为分类问题提供快速粗糙的基本方案。之所以成为“朴素”或“朴素贝叶斯”,是因为如果对每一种标签的生成模型(用于计算每个标签的P(特征|Li)P(特征|Li)P(特征|L_i)进行非常简单的假设,就能找到每种类型生成模型的近似解,然后就可以使用贝叶斯分类。...原创 2018-08-20 19:44:57 · 1120 阅读 · 0 评论 -
Pandas学习笔记六——合并数据集:连接(join)和合并(merge)操作
合并数据集:连接(join)和合并操作(merge)Pandas的基本特性之一就是高性能的内存式数据连接(join)和合并(merge)操作。pd.merge()实现的功能基于关系代数的一部分。关系代数是处理关系型数据的通用理论,巨大部分数据库的可用操作都以此为理论基础。Pandas的pd.merge()方法与Series和DataFrame的join()方法就是基于这些关系代数对应的基本操作...原创 2018-08-14 13:41:55 · 14096 阅读 · 0 评论 -
Scikit-Learn学习笔记——线性回归(基函数回归、岭回归正则化、Lasso正则化)
线性回归 如果说朴素贝叶斯是解决分类任务的好起点,那么线性回归模型就是解决回归任务的好起点。简单的线性回归#简单线性回归import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns;sns.set()rng = np.random.Random...原创 2018-08-20 22:37:58 · 3947 阅读 · 3 评论 -
Scikit-Learn学习笔记——支持向量机(SVM)
支持向量机 支持向量机(SVM)是非常强大、灵活的有监督学习算法,既可以用于分类,也可用于回归。在贝叶斯分类器中我们首先对每个类进行了随机分布的假设,然后用生成的模型估计新数据点的标签,这属于生成分类方法。而SVM属于判别分类方法:不再为每类数据建模,而是用一条分割线(二维空间中的直线或者曲线)或者流体(多维空间中的曲线、曲面等概念的推广)将各种类型分割开。支持向量机:边界最大化...原创 2018-08-21 11:40:19 · 2726 阅读 · 1 评论 -
Scikit-Learn学习笔记——SVM应用:人脸识别
SVM应用——人脸识别#下载数据from sklearn.datasets import fetch_lfw_peoplefaces = fetch_lfw_people(min_faces_per_person=60)print(faces.target_names)print(faces.images.shape)#输出结果['Ariel Sharon' 'Colin P...原创 2018-08-21 13:21:23 · 6751 阅读 · 2 评论 -
Numpy学习笔记二——初始化数组的10种方法
import numpy as np#创建一个长度为10的数组,数组的值都是0np.zeros(10,dtype=int)#创建一个3x5的浮点型数组,数组的值都是1np.ones((3,5),dtype=float)#创建一个3x5的浮点型数组,数组的值都是3.14np.full((3,5),3.14)#创建一个3x5的浮点型数组,数组的值是一个线性序列#从o开始,到20结束,步...原创 2018-08-12 17:45:51 · 32252 阅读 · 2 评论 -
Numpy学习笔记四——数组的广播规则
Numpy的广播规则规则1:如果两个数组的维度不相同,那么小维度数组的形状将会在最左边补1.规则2:如果两个数组的形状在任何一个维度上都不匹配,那么数组的形状会沿着维度为1扩展以匹配另外一个数组的形状。规则3:如果两个数组的形状在任何一个维度上都不匹配并且没有任何一个维度为1,那么会引起异常。为了更清楚的理解这些规则看,来看几个具体的示例。示例1M = np.one...原创 2018-08-12 12:57:50 · 1914 阅读 · 1 评论 -
Matplotlib学习笔记——简易散点图
简易散点图除了线性图,另外一种常见的图形是简易散点图。简易散点图和线性图不同之处在于,这种图形不再由线段(-, -., –等)连接,而是由独立的点、圆圈或者其他形状构成。用plt.plot()画散点图%matplotlib inlineimport matplotlib.pyplot as pltplt.style.use('seaborn-whitegrid')impo...原创 2018-08-16 13:09:40 · 9832 阅读 · 0 评论 -
数据科学家访谈录笔记——重要问题的取舍
重要问题的取舍RelateIQ产品部副总裁DJ Patil访谈人生观你一定要不断地问自己问题,然后通过问问题和解决问题,你才能慢慢勾勒出最适合自己的故事轮廓。如果你不喜欢自己正在做的事情,那就想办法改变他。正确的求职观在你获得机会之前,你必须清楚的意识到,任何招聘你的人都是在你身上冒险。求职不是准备一篇稿子,然后再每一次需要介绍自己的时候,千篇一律的讲出来。而是需要你每...原创 2018-08-14 21:31:55 · 294 阅读 · 0 评论 -
Pandas学习笔记八——数据透视表
数据透视表数据透视表是一种类似于Groupby的操作方法,常见于Excel与类似的表格应用中。数据透视表将每一列作为输入,输出将数据不断细分为多个维度累计信息的二维数据表。数据透视表相比与Groupby操作更像是一种多维的GroupBy累计操作。也就是说,虽然你也可以分割-应用-组合,但是分割和组合不是发生在一维索引上,而是在二维网络上(行和列同时分组)#示例使用泰坦尼克号的乘客信息...原创 2018-08-15 13:14:32 · 5776 阅读 · 0 评论 -
Pandas学习笔记九——向量化字符串操作
向量化字符串操作使用pyhton的一个优势就是字符串处理起来比较容易。在此基础上创建的pandas同样提供了一系列向量化字符串操作,他们都是在处理(清理)现实工作中的数据时不可或缺的功能。向量化操作简化了纯数值的数组操作语法——我们不需要再担心数组的长度或维度,只需要关心需要的操作。然而,由于numpy并没有为字符串数组提供简单的接口,因此需要通过频繁的for循环(列表生成式)来解决问题。...原创 2018-08-15 13:55:15 · 3146 阅读 · 0 评论 -
Seaborn案例:探索马拉松比赛成绩数据
Seaborn案例:探索马拉松比赛成绩数据#使用Seaborn探索马拉松比赛成绩数据import numpy as npimport pandas as pd%matplotlib inlineimport seaborn as snsimport datetime#把字符串转换成时间类型def convert_time(s): h, m, s = map(int,...原创 2018-08-17 21:15:31 · 1885 阅读 · 1 评论 -
数据科学家访谈录——建立自己的数据科学课程表
建立自己的数据科学课程表对于没有太多工程背景的人的建议将面试看作选拔 不要被招聘职位上对工程经验的要求吓到,马上行动起来并扎进那个领域,通过行动来给自己争取经验——通过设计并完成一个项目来展示你出众的能力。向面试官展示你可以接手那些难搞的项目并且找到解决方案。这样做会给你带来信心、技术以及足够强的背景,而你可以用它们从第一次面试开始到最后谈工资的时候就跟公司讨价还价。 ...原创 2018-08-17 22:52:12 · 382 阅读 · 0 评论 -
数据科学家访谈录——通过数据倾听你的客户
通过数据倾听你的客户对大数据的理解多数据胜与好模型好数据胜于多数据二八原则Airbnb的招聘流程给面试人一天时间去解决一个公司曾经面对过或者类似的问题,用的是真是(脱敏)数据。面试者可以和团队中任何人合作。一天结束后,面试者需要讲述发现了什么,并且回答如何做出卓而不群的产品,下一步应该怎么办对于大部分人来说,一天时间现学工具,然后用它们解决问题,明显时间太短...原创 2018-08-17 22:52:43 · 325 阅读 · 0 评论 -
Pandas学习笔记七——累计与分组
累计与分组在对比较大的数据进行分析时,一项基本的工作就是有效的数据累计(summarization):计算累计(aggragation)指标,如sum()、mean()、median()、min()和max(),其中每一项指标都呈现出大数据集的特征。一、简单的累计计算简单的累计计算是对DataFrame或者Series对象使用累计函数:sum()、mean()、median()、m...原创 2018-08-14 18:33:17 · 4707 阅读 · 0 评论 -
Pandas学习笔记十——高性能的eval和query方法
高性能的pandas:eval()和query()python数据科学生态环境的强大力量在Numpy和Pandas的基础之上,并通过直观的语法将基本操作转化为c语言:在Numpy里是向量化/广播运算,在pandas里是分组型的运算。虽然这些抽象功能可以简洁高效的解决很多问题,但是他们经常需要创建临时对象,这样会占用很大的计算时间和内存。Pandas为了解决性能问题,引入了eval()和qu...原创 2018-08-15 19:18:54 · 19536 阅读 · 3 评论 -
数据科学家访谈录——无处不在的软件正在用数据重构这个世界
无处不在的软件正在用数据重构这个世界对数据科学家的理解数据科学家这个角色本意是希望通过那些能写代码的科学家与软件开发团队通力协作,打造新产品或者系统,藉此弥合理论和实践之间的鸿沟。今天,基于公司的情况不同,数据科学家可能是一个依旧是和从前一样集科研与工程于一身的人,也可能是一位统计学家、商业智能分析师、研究科学家、基建工程师、营销人员或者数据可视化专家。在团队中拥有符合常规定义的...原创 2018-08-15 21:04:12 · 338 阅读 · 0 评论 -
数据科学家访谈录——学术期刊中的数据科学
学术期刊中的数据科学对数据科学的认识数据科学的主旨归结来看其实就是识别大规模的行为学特征。数据科学是一个通过学习数据来追溯因果、发现故事的过程如何发掘数据背后的故事尽量地做更多的图,并且尽可能快的做出来。通过画图来表示事物是怎样运转的,哪怕是最简单的流程图或者工程图谱都可以。很快的做出很粗糙的图片来查看一批数据是怎样的,从时间序列或者柱状图开始。努力去想如何进行图...原创 2018-08-15 22:28:08 · 511 阅读 · 0 评论 -
数据科学家访谈录——均方误差根无法解决所有社会难题
均方误差根无法解决所有社会难题数据科学家一项容易被忽视的能力其实大部分数据科学家所做工作中的一大部分都不是数据整理或者建模或编程,而是一旦你做出了一个结果,你必须要想办法将结果解读给那些完全不具备看懂这个图所必需的技能的人听,例如那些商业决定或者工程决策的重要人物。解读结果是很重要的。你可以用文字去解读它,也可以用可视化的图表去完成,抑或是做一个演示系统去展示你的结果。这项能力并需...原创 2018-08-18 10:30:46 · 234 阅读 · 0 评论 -
数据科学家访谈录——软件工匠学堂、软件工程及产品
软件工匠学堂、软件工程及产品访谈人介绍 Kevin是Uber的数据科学家主管,他在那里领导一个小团队来收集和分析Uber遍布全球的商业网络中产生的各种数据,并用他们的结论来指导未来的产品开发以及提供更好的用户体验。对数据科学家及其存在意义的理解对于任何人,只要他有黑客般的思考能力和足够的灵活性,他就一定能胜任一名数据科学家数据科学这领域大致包含两个概念,其中一个概...原创 2018-08-18 11:46:59 · 224 阅读 · 0 评论 -
数据科学家访谈录——从天体物理到数据科学
从天体物理到数据科学团队工程开发的经验公众对于科学有一种很“浪漫”的想法就是:你跳进一个课题里,然后在苦思冥想五个月之后,你会有一个“尤里卡”时刻,然后你搞定了这个问题。但是实际情况是:你的程序会有很多bug,你会犯下很多错误,并且你需要以团队的方式工作,这也就意味着你必须要能够高效的工作,你必须知道如何获取目前项目的分支加以编辑,你必须知道如何上传你修改好的代码,你必须知道如何写...原创 2018-08-18 13:53:50 · 476 阅读 · 0 评论 -
数据科学家访谈录——数据科学中软件工程的重要性
数据科学中软件工程的重要性如果回到大学,会做什么我希望当时的我可以花更多的时间去做实实在在的事情,建立网站或者完成一些项目。如果你总是习惯在白板上写画示意图,你就会越来越害怕编程。我觉得反复琢磨研究一个原型产品会对你的编程能力有很大的提高。同时我也希望自己当时可以写更多的程序,因为当我一开始移居到硅谷的时候, 拙劣的编程技术实在是我前进道路上一大绊脚石。如何认识出色的数据...原创 2018-08-18 15:46:54 · 485 阅读 · 1 评论 -
数据科学家访谈录——如何锻炼数据科学技能
如何锻炼数据科学技能对数据科学的理解在未来,有关数据科学的很多虚假浮华描述终将散去,但数据科学终于会作为商业世界中不可磨灭的一部分存在下来。数据科学自有其规律和底蕴,是一个结合了应用数学、计算机科学、商业资讯和新产品开发的综合职位,最后一项目前在数据科学的比例越来越大。我觉得一名出色的数据科学家应该像瑞士军刀一样多才多艺,能够在诸多领域都有作为,并且在一两个领域内拥有深邃的真知灼见...原创 2018-08-18 17:29:34 · 534 阅读 · 1 评论 -
Matplotlib学习笔记——常用技巧
Matplotlib常用技巧 matplotlib最重要的特性就是具有良好的操作系统兼容性和图形显示底层接口兼容性。Matplotlib支持几十种图形显示接口与输出格式,这种跨平台、面面俱到的特定已经成为Matplotlib最强大的功能之一。在IDLE中画图import matplotlib as mplimport matplotlib.pyplot as plti...原创 2018-08-16 09:57:31 · 711 阅读 · 0 评论 -
Matplotlib学习笔记——配置图形参数
配置图形参数使用面向对象的绘图接口时会创建figure和axes对象。figure实例可以看成是一个能够容纳各种坐标轴、图形、文字和标签的容器,axes是一个带有刻度和标签的矩形,最终会包含所有可视化的图形元素。import matplotlib as mplimport matplotlib.pyplot as pltimport numpy as npimport panda...原创 2018-08-16 11:09:13 · 3469 阅读 · 0 评论 -
端到端的机器学习项目
端到端的机器学习项目主要步骤: Frame the problem and look at the big picture Get the data Explore the data to gain insight Prepare the data to better expose the underlying data patterns to Machine L...原创 2018-08-25 11:36:57 · 428 阅读 · 0 评论