数据科学家需要具备哪些知识与技能?
- 计算机技能
- 数学和统计学知识
- 业务能力
数据科学家的分类
- 数据开发者
1.开学人员
2.工程师 - 数据研究者
1.研究人员
2.科学家
3.统计学家 - 数据创意
1.万金油
2.艺术家
3.黑客 - 从事数据的商业者
1.领导者
2.企业管理者
3.商业者
不同领域的数据科学家需要的技能是有所侧重的:
完整的数据分析流程
- 定义研究问题
- 定义理想的数据集
- 确定能够获取什么数据
- 获取数据
- 清理数据
- 探索性分析(数据可视化)
- 统计分析/建模(机器学习)等
- 解释/交流结果(数据可视化)
- 挑战结果(有没有其他可能)
- 书写报告(Reproducible原则)
数据基础
- 观测(observation)
- 变量(variable)
数值型:进行定量分析
分类型:进行定性分析 - 数据矩阵(data matrix)
变量间的关系(对应不同的可视化方法和统计分析方法)
* 两个数值变量
* 两个分类变量
* 一个数值变量、一个分类变量
数值变量的特征和可视化
- 数据集中趋势的测量
均值、中位数、众数 - 数据分散趋势的测量
值域、方差、标准差、四分位数 - 稳健统计量
是:中位数、四分位差(受极端影响小)
否:均值、标准差、值域(受极端值影响大) - 一个变量的可视化
柱状图、点图、箱图(中位数、分位点、极端值)
- 两个变量的关系
散点图:方向、形状、强度、极端值
分类变量的特征和可视化
- 一个分类变量的可视化
频率表、条形图 - 两个分类变量的关系
关联表、相对频率表、分段条形图、相对频率分段条形图、马赛克图 - 一个分类变量、一个数值变量的关系
并排箱图
R的绘图系统
R的三大绘图系统
- 基本绘图系统
1.艺术家的调色板:绘图始于空白帆布;需要事先计划;直观地实时反映绘图和分析数据的逻辑
2.基本包含两个步骤:图+修饰/添加=执行一系列函数
3.适于绘制2D图 - Lattice绘图系统
1.绘图=使用一次函数调用(一次成图)
2.特别适用于观测变量之间的交互:在变量z的不同水平,变量Y如何随变量x变化 - ggplot2绘图系统
1.用语法来作图
图:动词、名词、形容词等
数据映射到几何客体(点、线、面)的美学属性(颜色、形状、大小)
2.基本绘图系统+Lattice绘图系统
自动处理标题/文字说明/空间等,但也允许通过添加注释进行修改
基本绘图系统
- 绘图函数(在graphics包)
1.plot、hist(柱状图)、boxplot(箱图)、points(点)、lines(线)、text(在图的指定位置添加文字)、title(命名)、axis(添加坐标轴)
2.调用函数会启用一个图形设备(如果没有正在运行的图形设备),并在设备上绘图 - plot()
plot(x,y,……)
重要参数:xlab(坐标)、ylab、lwd(线宽)、lty(线的类型)、pch(点的类型)、col(颜色)…… - par()
用于设置全局参数:
bg:背景颜色
mar:边界边距
las:坐标轴汉字的排版
mfrow:将画板分为几行几列,按行填充
mfcol:将画板分为几行几列,按列填充
练习:
with(airquality, plot(Wind, Temp, main="Wind and Temp in NYC", type = "n"))
with(subset(airquality, Month == 9), points(Wind, Temp, col = "red"))
with(subset(airquality, Month == 5), points(Wind, Temp, col = "blue"))
with(subset(airquality, Month %in% c(6,7,8)), points(Wind, Temp, col = "black"))
fit <- lm(Temp ~ Wind, airquality)
abline(fit, lwd = 2)
legend("topright", pch = 1, cex = 1,
col = c("red", "blue", "black"),
legend = c("sep", "May", "Other"))
结果:
全局参数
- 查看全局参数
par(”bg“):背景颜色
par(”mar“):边界边距
par(“las:):坐标轴汉字的排版
par(”mfrow“):将画板分为几行几列,按行填充
par(”mfcol“):将画板分为几行几列,按列填充
例子代码:
par(mfrow=c(1,2))#将画板分为一行两列
hist(airquality$Wind)
hist(airquality$Temp)
结果:
Lattice绘图系统之基础知识
- 绘图函数
lattice包:
1.xyplot/bwplot/histgram/stripplot/dotplot/splom/levelplot/contourplot
2.格式:xyplot(y ~ x|f * g, data)
3.pannel函数,用于控制每个面板内的绘图
grid包:
1.实现了独立于base的绘图系统
2.lattice包是基于grid创建的,很少直接从grid包调用函数 - lattice和base的重要区别
1,base绘图函数直接在图形设备上绘图
2.lattice绘图函数返回trellis类对象
打印函数真正执行了在设备上绘图
命令执行时,trellis类对象会被自动打印,所以看起来就像是lattice函数直接完成了绘图
练习:
library(lattice)#载入包
xyplot(Temp ~ Ozone, data = airquality)
airquality$Month <- factor(airquality$Month)
xyplot(Temp ~ Ozone | Month, data = airquality,
layout = c(5,1))
q <- xyplot(Temp ~ Wind, data = airquality)
print(q)
set.seed(1)
x <- rnorm(100)
f <- rep(0:1, each=50)
y <- x + f - f * x + rnorm(100, sd=0.5)#使用随机数时,切记使用种子,保证后期检查,纠错方便.
f <- factor(f, labels = c("Group1", "Group2"))
xyplot(y ~ x | f, layout = c(2, 1))
xyplot(y ~ x | f, panel = function(x,y){
panel.xyplot(x,y)
panel.abline(v = mean(x), h = mean(y), lty = 2)#在x、Y均值分别画条直线
panel.lmline(x,y, col = "red")#添加回归线,做拟合
})
结果: