自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 收藏
  • 关注

原创 用SQL进行多值列拆分成二值列的一个实现

在进行数据分析的时候,往往需要把数据表格中的多值列拆分成二值列。如图1中的表A所示,fruits为一个多值列,值可以是不同的水果名字,表明某个以ID作为标识的人吃水果的记录。现在的需求是要把是否吃了什么具体水果拆成多个列,最终如表B所示。在这个例子中,吃水果的记录还有重复,所以需要把重复的记录去掉。具体来说,可以将这个任务拆分成多个步骤,由不同的SQL select语句完成。如图2所示。这儿使

2017-09-26 11:02:46 5243

原创 Highcharts中更新series的5种方法

用Highcharts画图时,经常需要更新所画的图表,最常见的就是改变数据以更新图表。在Highcarts中,数据对应的参数是series。这儿就以图1的柱状图为例,列举如何更新series的4种方法,以供参考。源代码可从这儿访问。图11. series.updateHighcarts图表中,可以有多个series。当我们想更新其中某一个series时,可以直接调用其updat

2017-06-20 17:34:20 42099 3

原创 在Macbook Pro上安装支持GPU的TensorFlow

上一篇博文《在Macbook Pro上为TensorFlow设置GPU》中,我们已经为Macbook上的NVIDIA显卡安装了各种驱动,保证各种深度学习框架能够使用GPU进行计算。这儿就总结一下在后续安装TensorFlow的过程中遇到的问题。按照TensorFlow官网的说明,考虑到Macbook上刚新装了Anaconda (Python 3.6),因此选择用anaconda来安装tensorfl

2017-06-15 15:54:33 18511 3

原创 在Macbook Pro上为TensorFlow设置GPU

最近忽然发现自己的Macbook Pro上装有一块额外的NVIDIA GeForce GT 750M显卡,于是蠢蠢欲动想装一个TensorFlow,试试在GPU上跑算法的性能。先进入TensorFlow官网的Mac安装页面,发现要先装一堆NVIDIA的软件,于是进入NVIDIA文档页面。为了安装NVIDIA CUDA,首先确认自己的显卡在支持列表里。确认完毕后,查看自己的Macbook当前mac

2017-06-14 16:11:16 22558 2

原创 再论HTML散点图(Scatter Plot)的SVG实现方式

介绍在上一篇《HTML散点图(Scatter Plot)的三种不同实现方式性能比较》中,重点比较了散点图的SVG实现方式和HTML5 Canvas实现方式的不同。这儿再详细看看使用SVG,预先生成节点和实时加载数据之间的区别。这儿为了在性能上有所比较,因此将散点数目增加到250,000,并且用于绘制散点的csv文件由data-generator.py统一生成。源代码可在此处下载。d

2017-06-13 17:04:06 2014

原创 HTML散点图(Scatter Plot)的三种不同实现方式性能比较

介绍相对于其他图表类型而言,散点图往往会接收大数据做为输入,而需要同时显示上万甚至上百万的数据点在图上。对于基于HTML的散点图来说,其性能无疑是一个非常重要的考虑因素。下面就对比一下3种不同的散点图实现,来看看其性能如何。实现的源码可在这儿下载。为了有可比性,这儿的散点图都是在一个500*500的区域内,绘制10,0000个半径为1的绿色点。其位置完全随机。 散点图实现 1.

2017-06-09 17:48:49 12101

原创 当pandas.Series存在混合类型index的时候取子集出错的处理

问题描述当创建一个pandas.Series对象,并且设置其index既包含数字型,也包含字符串型时,后续的取子集操作在某些情况下会出错。样例代码se = pd.Series([1,2], index=[123456789,'1234569'])se[[123456789,'1234569']] #取全集se[['1234569']] #只取字符串类型index的子集se[[12

2017-02-08 17:28:30 1076

原创 高维数据探索 (High-Dimensional Data Exploration)

在医学领域做数据分析,经常把数据先整理成一张大宽表,然后再进行诸如疾病风险预测之类的建模。这张大宽表每行代表一个患者(case)的数据,而且通常会包含非常多列,每列对应某一种数据(feature)比如患者基本信息、诊断、检查结果等。这样的数据如果有非常多的行和列,则可以被称作是高维数据(High-DimensionalData Exploration)。在进行具体建模分析之前,非常重要的一步是

2017-01-03 14:35:52 4910

转载 预测未来 -- 大数据,机器学习与临床医学

最近发在新英格兰医学杂志上的一篇观点文章。对于大数据和机器学习技术在临床医学上的应用做了简短的总结和展望。这儿转载的是英文版。需要中文版的话可以登录:http://www.nejmqianyan.cn/article/YXQYoa1606181?from=timeline&isappinstalled=0#10006-weixin-1-52626-6b3bffd01fdde4900130bc5a2

2016-11-22 16:04:03 3184 2

原创 关于因果关系的一点思考

从开始接触临床研究的方法论到现在,非常深刻的一个印象就是临床研究注重因果关系(Causality)的验证。比如设计一个随机对照试验(RCT)验证某种干预(药物、手术等)对某个临床结局的关系。所采用的主要方法就是控制所有对结局可能有影响的因素,(理论上)只让关心的干预方式在人群中有变异,并观察最终的结局的变化,建立干预对结局的关系。由于在试验设计的时候就让干预先发生,结局后发生,且在作用的过程中控制

2016-11-06 10:12:05 3007 1

转载 A Tour of Machine Learning Algorithms

最近和做临床研究的大夫交流,他提出一个问题:所谓大数据分析的底层方法论是否适合用于临床研究?众所周知,临床研究目前主要采用的是流行病学的方法论,而底层基础数学理论是统计学。现在大数据分析方法中,主要部分是机器学习、模式识别等。我们知道,机器学习整合了大量统计学的方法,也有很多新的方法。但是,两个学科对于分析所要达到的目标其实预期不一样。统计学更注重逻辑的严谨性,而机器学习更看重学习的结果。那机

2016-11-04 16:28:08 1363

原创 回归分析:预测 VS 因果分析

在学习或者使用机器学习的方法时,回归分析可以说是最常用的一种方法了。今天朋友推荐Dr. Paul Allison的一篇博文,讲回归分析最常用的两种方式:预测和因果分析。觉得对医学信息学里面对回归分析的使用有很大的帮助,于是拜读了一下。下面是对于其中主要观点的总结。Dr. Allison是统计学方面的大牛,写了很多本统计学方面的书。最厉害的是他的教学。不管面对什么样的学生,他都能很有效地教授统计

2016-10-27 09:40:47 10255

原创 统计学和机器学习之间的区别

最近做医学数据分析的结果展现,提到了两个问题:1. 机器学习方法相比较传统统计学方法而言,能产生什么新的结果?2.这些新的结果能不能用统计学理论来解释?于是简单Google了一下。很不幸,没有找到专门针对医学分析的,倒是发现一篇博客,讲统计学与机器学习、数据科学的区别。个人觉得挺有道理的。摘录主要思想如下。 1.    统计学的主要特点?文中提到,统计学家最重要的任务是处理由采样引

2016-10-26 06:59:47 6148

原创 D3.js用动画渲染数据集的显示

介绍数据统计和数据分析离不开数据集。之前几篇博客(用D3.js进行医疗数据可视化 (一)折线图 (Line Chart) 等)基于的是国家卫生和计划生育委员会统计信息中心的数据,可以说是已经经过了加工,提炼总结出来的数据。而本文涉及的是原始数据集。如果按医疗数据来说,可以是电子病历数据,个人健康数据等。但这儿重点介绍动画效果的实现,不涉及任何与特定数据集有关的内容。前一段时间有点闲暇时间,

2016-07-22 18:30:44 3148

原创 贝叶斯理论——一种由表及里的方法

贝叶斯理论介绍  贝叶斯理论说,你如果观察到了一个现象,表象我来告诉你由这个现象出发寻找真象的方法。P(真象|表象)不管这个真象存不存在,P(真象)不管这个现象大家以前见没见过,P(表象)也不管有没人知道什么样的真象会导致这个现象,

2016-03-25 17:18:19 1134

原创 变化多端 – 多种纯CSS的HTML表格设计

介绍在HTML中,Table节点由于其层层嵌套的节点结构,一度名声很臭,且一度被呼吁用DIV+CSS取而代之。但在实际项目开发中,一碰到规整的数据显示,不知不觉又会用起它。可见其生命力之顽强。这儿就探讨下几种不同的通过CSS实现的Table设计 。通过JavaScript渲染的效果不在此文讨论范围。表格最终渲染效果在Firefox 36.0或者Safari 8.0.7下实现。很可惜不是

2015-08-03 20:00:47 30978 2

原创 用D3.js进行医疗数据可视化 (五) 饼图 (Pie Chart)

介绍经过一系列对折线图的试验,这儿就来尝试一下用饼图(Pie Chart)来做医疗数据的可视化。在《用D3.js进行医疗数据可视化 (四) 堆积区图(Stacked Area Chart)》的图2中,我们见识了每种医疗机构每月院均诊疗人次数(人次)的比较。其实对于一组数据间的比较,用饼图是非常适合的:它可以直观地看到每种数据占总体的比例,以及相对于其他组数据孰大孰小。 代码

2015-08-03 17:05:10 6025 3

原创 用Apache CouchDB存储医疗可视化数据

介绍之前花了些时间探讨用D3.js做医疗数据的可视化,所用的数据来自国家卫生和计划生育委员会统计信息中心网站。简便起见,相关的数据做成JSON格式,并存在了本地JSON文件中。对于短期试验性开发,对数据的存储并没有太多要求。但随着时间流逝,我也想能用比较“正式”的方法来存储相应的数据,也就是采用数据库。当前的数据库技术可谓流派众多,经典的Relational Database依旧占据了大半

2015-07-29 22:26:59 3923

原创 用D3.js进行医疗数据可视化 (四) 堆积区图 (Stacked Area Chart)

介绍在之前的文章《用D3.js进行医疗数据可视化 (一)折线图》中,我们可以看到对于所可视化的医疗卫生机构诊疗人次数线图,最下部的几条线几乎重合在一起,而且几种机构类型相互包含,关系比较混乱。因此在这篇文章我,我们尝试一下用堆积区图(stackedarea chart)来强调它们之间的对比。 代码 全国医疗卫生机构医疗服务量 fu

2015-07-23 21:56:03 5678 2

原创 用D3.js进行医疗数据可视化 (三)坐标轴 (Axes)

介绍这这篇文章中,我们来尝试一下改进坐标轴的呈现方式。所有的代码都是在之前使用D3.js进行医疗数据可视化的一些实践 (二)中的代码基础上改的。因此这儿只把相应改动的代码贴出来。 任务一:让X轴的刻度以及相应的网格按月分布,并将刻度值改成中文可视化效果 代码var xAxis = d3.svg.axis() .scale(_x.range

2015-07-22 20:34:52 6629

原创 用D3.js进行医疗数据可视化 (二)图例 (Legend)

介绍在上一篇文章的结尾,对生成的可视化图,我们提到了许多待改进的地方。这儿就先来讨论下图例的显示。图例的主要目的是说明图表中各种符号和颜色所代表的内容及指标的说明。对于我们之前生成的line chart,需要用图例说明每条曲线所代表的具体含义是什么。总结两点基本原则如下:1.     图例中要对应曲线的颜色,并指出对应的医疗机构名称;2.     图例要放在适当的位置,以便起到恰如

2015-07-22 14:42:20 8798

原创 用D3.js进行医疗数据可视化 (一)折线图 (Line Chart)

介绍大概说说这个事情的前因后果吧。 去年下半年,我有机会参加了一个大型项目,在里面参与了前端可视化组建的开发,用的library是D3.js [2]。虽然3个月后我就结束了在这个项目里的工作,但后面断断续续也用D3做了一些别的实现。而从几年前开始,我一直在做和healthcare相关的项目,主要就是做医疗数据的信息化,从而优化医疗领域的信息管理、决策支持。从项目的角度出发,我们的着

2015-07-19 22:01:08 14031 4

原创 关于不同的JavaScript Framework的一点思考

前几年一直用Dojo做应用开发,也经历了Dojo的一些大大小小的变化,比如1.6以后采用了AMD模式。应用所限,对于这些变化背后的动机,一直都没有很深入地去了解。最近半年有机会加入了一个大型应用开发项目,一下子接触了很多种不同的JavaScript Framework。个人除了Dojo之外,也上手了JQuery和d3。回首以前看过的一些文章对于这些框架优劣的争论,也有了一点自己的看法。Dojo

2015-01-12 15:46:29 764

原创 dijit.Tree中widget和DOM node之间的切换

之前在装扮装扮dijit.Tree这篇文章中介绍了如何利用dijit.Tree提供的功能改变树的外表。这儿继续dijit.Tree的话题,说说dijit.Tree中widget和DOM node之间的切换。dijit.Tree是dojo提供的一个对象,用以描述树形UI。相应地,它有与之对应的DOM结构,用以在网页上将树呈现出来。在很多时候,我们需要以一知二,或者已知widget对象,得到对应的

2014-08-06 12:57:20 2452

原创 Dojo中一些挺有意思的小功能(一)——hitch

用Dojo也有几年了,平常写代码的时候,经常碰到一些小小的需求,实现的功能不大,但是如果要自己编程的话,得费不少的劲儿。结果回头查Dojo的文档,竟然能找到一个功能,恰好能解决手头的需求,能惹得会心一笑。忙中偷闲,这儿零零碎碎地把这样的小功能记录下来,聊以一乐。 文中所记功能是基于Dojo1.7.3的,想来更高的基于AMD的版本也有类似的功能。 dojo/_base/lang:

2014-08-01 17:15:33 2345

原创 两种CSS控制:fieldset垂直滚动和图片文字垂直居中

让fieldset里面出现垂直滚动条很多情况下,当fieldset中的内容很多时,我们希望能够

2014-04-23 15:40:04 6740

原创 用锚点进行HTML页面内容的跳转

介绍我们知道,JavaScript可以实现HTML页面上非常丰富的事件和动作,比如说点击工具栏某个按钮时,显示相应特定的内容并隐藏其他。但在有些Web应用部署的实际情况中,会禁用除了HTML之外的其他代码,比如JavaScript和CSS。那如何实现类似的效果呢?经过尝试,本人发现用锚点也可以实现页面内容的跳转。具体来说,就是当点击某个按钮时,跳转到特定的内容处。当工具栏有若干按钮时,每个

2013-12-04 15:30:33 20157 5

原创 用Struts2+Dojo实现文件下载

介绍Struts2 + Dojo是目前非常通用的Web应用开发组合。文件下载则是非常老的一个功能了。现在就介绍一下如何用Struts2+ Dojo 1.7.3实现文件下载的功能。 前端:初始化Dojo,创建下载按钮,实现点击下载事件test.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" p

2013-11-20 17:00:00 3132 1

原创 Web前端开发调试的辅助工具

介绍在开发Web应用前端时,总是免不了要在浏览器中进行跟踪调试。以Firefox为例,有很多插件,可以让我们的工作事半功倍。Firebug最强大的前端开发调试工具。可以查看编辑HTML、CSS、JavaScript,查看HTTP请求,并直接输入执行JavaScript代码。Clear Cache一键清空Cache。我们在调试代码的时候,经常碰到这样的情况:明

2013-11-13 10:25:35 1569

原创 装扮装扮dijit.Tree

介绍dijit.Tree(Dojo 1.7.3)是Dojo的树形UI控件。根据上设的dojo theme不同,可以有几种不同的标准风格(claro,tundra,nihilo和soria)。但要实现自己的风格,还需要用点手段“装扮装扮”。创建一棵树CSS代码@import "../js/dijit/themes/tundra/tundra.css"; html,

2013-11-01 20:28:42 2571 3

原创 dijit.form.TextBox的一些用法

介绍可以说dijit.form.TextBox是最常用的一款Dojo UI控件之一。那如何能操作它呢?这儿就列举了一些用法共参考。 HTML代码@import "../js/dijit/themes/tundra/tundra.css";@import "../css/main.css";<input type="text" id="input_box" s

2013-11-01 15:47:15 3132

原创 dojox.charting和dojox.timing构造Dojo动态图表

介绍在大数据时代,Visualization似乎很火。它让数据变得更直观、易理解。相应的,Dojo提供了一个专门针对 web 矢量图开发的控件包dojox.charting,提供了很多封装好的控件,比如线图、饼图、柱状图等等。试想,如果能够让后台实时更新的数据直接反映在web页面的一张图上,这张图还能随着数据的更新而变化,岂不是很有趣?关键有了dojox.charting,这样的功能就能轻松实

2013-10-31 10:40:58 2697

原创 Dojo JavaScript实现消息滚动出现效果

介绍这种效果说的就是类似状态监视器一样的应用。实时更新后台或某个监控点的状态消息。主要采用的技术就是定时器和滚动定位。 代码示例<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>@import "../js/dijit/themes/tundra

2013-10-30 11:03:37 2815

原创 前端数据操作的强大工具——dojo.data.ItemFileWriteStore

介绍dojo.data.ItemFileWriteStore是Dojo用来在前端操作数据的一个强大的工具。它可以和很多UI控件合作,进行数据的存储、传输和表示。比如和dijit.Tree结合时,可以在前端表示树形。最强大的是,只要操作ItemFileWriteStore,就可以实现树形的修改,包括增删节点、修改属性等。而且可以实时反映在前端页面上。 现在就以dijit.Tree为例,说

2013-10-29 09:33:14 5193

原创 如臂使指——Dojo框架下让浮动窗口跟随鼠标而动

介绍在web应用的很多场合,需要让浮动窗口跟随鼠标而动。比如这儿举的一个例子:当用户选中网页上一段内容时,弹出工具条让用户进行标记。可以想象一下,有一个在线看书的应用,支持读者在阅读的时候随时做笔记。当读者选中一段文字时,弹出一个小工具条,让用户保存成笔记标题或笔记内容。在这种场景下,让小工具条出现在选中文字的旁边是必要的用户体验。在实际应用场合,还必须确保在不同的浏览器中、当文字内容有滚动条

2013-10-28 16:26:53 3271

原创 一个de两种意思——谈谈Dojo define 和declare的区别

同样是de打头,我经常被dojo define和dojo declare弄晕。单词长的像,表面意思似乎也很像。翻译成中文叫“定义”和“声明”,可也不是Java中说的那样。那Dojo中是怎么安排这两个词的呢? 先看define。作用是定义一个模块(module)。这个模块可以被require引用,引用了之后就可以使用define里面的东西。一个模块想当然,里面干什么事情,不一定全部自己实现。

2013-10-25 15:52:06 20727 4

原创 四两拨千斤——Dijit Tree 拖拽(DnD, Drag & Drop)的精细控制

介绍dijit.Tree是一款很有用的Dojo控件,用来在页面上表示树形数据。像Dojo其他很多控件一样,它可以直接和后台的数据连接,并实时显示在页面上。已经有很多帖子介绍如何创建树、加入点击事件及右键菜单等,这儿专门介绍dijit.Tree拖拽的精细控制。 先说说举例用的应用场景。一个食品原材料供应商要建立自己的产品列表(New List),该列表包含几个大类,大类下面又有小类,直至

2013-10-24 11:29:06 4773 2

原创 关于dijit.form.Select中addOption()的一点注意事项

dijit.form.Select的addOption()函数是一个很好的功能,方便我们用编程的方法动态添加结点到Select中。不过如果遇到下面这样的问题,希望不要重走本人的老路,花冤枉时间。(Dojo 1.7.3) HTML代码 Check Box 1: <select id="cb1" name="cb1" style="width: 1

2013-05-11 10:14:05 4995

原创 用dojo实现页面控件阻塞的几种方法

经常碰到这样一种需求,当点击某个按钮向服务器发送请求时,需要将整个页面或页面的某些控件阻塞住,直到请求返回,才允许用户操作。要实现这个功能,dojo中提供了多种方法。这儿就列举几种出来。(dojo 1.7.3) 1 阻塞整个页面dijit/Dialog Loading... on(dom.byId("show_dialog"), "click", funct

2013-04-28 17:28:37 2758

原创 使用Struts 2将客户端JSON数据映射为服务器端Java对象

上文(使用 Struts 2将Java对象序列化成JSON)介绍了如何将Java对象序列化成JSON格式并传到客户端。这篇文章就说说如何将客户端的JSON数据映射为服务器端的Java对象。 pom.xml需要引入struts2-json-plugin包。 org.apache.struts struts2-core 2.3.12 org

2013-04-17 13:23:33 6571 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除