R语言是进行数学分析非常好的工具,所以对R语言介绍前,首先对数据分析进行一些思路的梳理:
数据分析流程:
1. 定义研究问题
定义理想的数据集
确定能够获取什么数据
获取数据
清理数据
2. 探索性分析(数据可视化)
统计分析、建模(机器学习)等
3. 解释/交流结果(数据可视化)
挑战结果
书写报告
数据分析的根本在于数据,而探索性分析是我们当今研究的重点,其多涉及机器学习的理论部分。
就数据来说,数据变量类型分为两种:
数值(quantitative): 连续、离散 -> 运算
分类(qualitative): 无序、有序 -> 非运算
基于数据我们的分析过程多是基于数据间的关系(当然也会有像序列分析这样貌似没关系的),根据数据类型划分,一般会根据实际分析场景,看是两个数值变量、或两个分类变量、或一数值变量一分类变量间的关系来选取分析方法。
数据可视化在分析过程中起着非常重要的作用,它让数据更直观地展示出来,从而引导研究者的猜测和实验过程。
1.数值变量的特征和可视化
数据集中趋势的测量
均值(mean)、中位数(median)、众数(mode)
数据分散趋势的测量
值域(range:max-min)、方差(variance)、标准差(standard variance)、四位分距(interquartile range)
稳健统计量(robust statistics)受极端值影响小
是: 中位数、四分位差
否: 均值、标准差、值域
一个变量的可视化
柱状图(histogram)、点图(dot plot)、箱图(box plot)
两个变量的关系(可视化)
散点图(scatter plot)
2.分类变量的特征和可视化
一个变量的可视化
频率表(frequency table)、条形图(bar plot)
两个变量的关系(可视化)
关联表(contingency table)、相对频率表(relative frequencies)
分段条形图、相对频率分段条形图
马赛克图(mosaicplot)
3.另:
一个分类变量、一个数值变量的关系(可视化)
并排箱图(side-by-side box plot)
R语言是一个免费开源的用于统计计算和统计绘图的优秀工具。在windows环境下进行R语言的开发,RStudio是一个非常简约好用的工具。R语言对数据可视化的支持非常好,它有三大绘图系统:基本绘图系统,Lattice绘图系统,ggplot2绘图系统。
1.基本绘图系统
绘图函数(graphics包):plot/hist/boxplot/points/lines/text/title/axis
plot()
plot(x, y, ...)
重要参数:xlab/ylab/lmd/lty/pch/col
par()
用于设置全局参数(作用于R中所有plot绘图)
bg/mar/las/mfrow/mfcol
这些参数可以在每次plot之前进行修改
2.lattice绘图系统
绘图函数
lattice包:xyplot/bwplot/histogram/stripplot/dotplot/splom/levelplot/contourplot
xyplot(y~x|f*g, data)
panel函数,用于控制每个面板内的绘图
grid包
实现了独立于base的绘图系统
lattice包是基于grid创建的;很少直接从grid包调用函数
lattice与base的重要区别
base绘图函数直接在图形设备上绘图
lattice绘图函数返回trellis类对象,打印函数真正执行了设备上的绘图
3.ggplot2绘图系统
绘图函数
qplot()
ggplot() //核心
PAC理论:
机器学习理论中主要涉及的计算学习理论有两种:PAC理论和VC维,它们的目的是为了分析学系任务的困难本质,为学习算法提供理论保证,并根据分析结果知道算法设计的。
这里面VC维较PAC理论的来说深度更深,且涉及数学基础要特别好,之后有机会我会进行一篇文章的介绍。
PAC理论指“概率近似正确”学习理论,Probably Approximately Correct。
定义“概念”为样本空间X到标记空间Y的映射(可以理解为一个函数关系)。如果概念c对于任何样本(x, y)都满足了c(x) = y,那么c就是一个“目标概念”。我们希望学到的目标概念的集合,称为“概念类”。
而对于给定的学习算法,它的输入除了数据外,还要给其设定“假设空间”,“假设空间”指的是学习算法会考虑的所有概念的集合。而学习算法的目的或行为,就是从假设空间中提取出近似概念类的集合。
为什么说是“近似”呢?当然是机器学习就是有其自身的限制,哪怕是单单给定训练集的大小不同,训练结果都可能差距很大。那么PAC理论所提及的就是“希望有比较大的把握可以学到比较好的模型”,也可以说在满足了能接受的误差的基础上,学到好的模型的概率达到一定程度。
PAC辨识:对于给定的误差上限a和置信概率b,有P(假设类的泛化误差<=a)>=1-b
PAC可学习:对于给定的误差上限a和置信概率b,数据本身的福在读size(x),目标概念的复杂度size(c),给定的训练集样本数量m要大于poly(1/a,1/b,size(x),size(c))
PAC学习算法指满足PAC可学习的基础上,学习算法运行时间也满足poly(1/a,1/b,size(x),size(c))同阶
一般来说,size(x)越大,学习越准,size(c)越大,学习越慢,二者又同时与学习计算时间相关,PAC理论给我们的启示在于,如何能再设计算法时恰好的到“恰PAC可学习”,这是一门非常大的学问,以至于计算过程不需要完全依赖于机器。
之后希望有一篇文章能写好VC维的理论,它直接从数学角度分析了学习过程的复杂程度等问题,希望对大家有用。
1.《[r语言如何计算运行时间]r语言如何运行代码?》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《[r语言如何计算运行时间]r语言如何运行代码?》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/3301312.html