图源:Unsplash “数据科学家是程序员中最擅长统计学、统计学家中最擅长编程的人。” ——乔什·威尔斯(Josh Wills) 数学很重要。 数学与我们周围的一切事物息息相关,从形状、图案、颜色到花朵中花瓣的数量。数学深深扎根于人类生活的各个方面。 数学和统计学对学习数据科学至关重要,因为这些学科构成了所有机器学习算法的基础。 成为一名数据科学家,除了对编程语言要有很好的了解,还必须要掌握机器学习算法、数据驱动方法。但数据科学并不只涉及这些领域。在本文中,您将了解数学和统计学对数据科学的重要意义以及如何将其用于建立机器学习模型。 图源:Unsplash 本文将涉及的主题列表如下:
统计概论成为一名成功的数据科学家,必须掌握一定的基础知识。数学和统计学是机器学习算法的基础。重要的是了解各种机器学习算法背后的技术,进而知道如何以及何时使用它们。那么统计学到底是什么? 统计学是一门与数据收集、分析、解释和表示有关的数学科学。 统计学–数据科学的数学和统计学 统计学用于处理现实世界中的复杂问题,在此基础上,数据科学家和分析师可以寻找有意义的数据趋势和变化。简而言之,统计学就是对数据进行数学计算,并从中得出有意义的结论。 可应用几种统计函数、原理和算法分析原始数据、建立统计模型并推断或预测结果。 统计学应用–数据科学的数学和统计学 统计学影响生活的各个方面,例如股票市场、生命科学、天气,零售业、保险和教育。 接下来,将讨论统计学中的基本术语。 统计学术语-数据科学中的统计学在学习数据科学中的统计学时,应注意了解一些关键的统计术语。下面将展示一些术语:
在进一步讨论统计学的具体类别之前,先来看一下分析的类型。 分析类型 对任何事件进行分析都可以选择以下两种方式之一: 分析类型–数据科学的数学和统计学
例如,如果我想从星巴克购买杯咖啡,那么就可以在小杯、中杯、大杯中选择。这是定性分析的一个例子。但是,如果一家商店每周售出70杯常规咖啡,该例子则变为定量分析,因为有一个数字能体现每周售出咖啡的数量。 尽管两种分析的目的都是为了获得结果,但定量分析的结果更清晰,因此在分析中占据了至关重要的地位。 统计类别统计学中有两个主要类别,即:
1. 描述性统计 描述性统计使用来自数值计算、图形或表格的数据进行总体描述。 描述性统计有助于整合数据并关注参数数据的特征。 描述性统计–数据科学的数学和统计学 假设要研究教室中学生的平均身高,在描述性统计中需要记录班级中所有学生的身高,然后找到班级中最高、最低和平均身高。 描述性统计示例–数据科学的数学和统计 2. 推断性统计 推断性统计会根据从总体中获得的数据样本对总体进行推断和预测。 推断性统计对一大组数据集进行概括,并应用概率得出结论。推断性统计可根据样本统计信息推断总体参数并在此基础上构建模型。 推断性统计–数据科学的数学和统计学 还是以研究班级中学生的平均身高为例,在推断性统计中需要获取该班级的样本集,即整个班级中的几个人。之前已经将班级划分为高个子组、平均身高组和矮个子组,通过这种方法可以基本上建立一个统计模型,并将其扩展应用到班级总体中。 推断性统计示例–数据科学的数学和统计 现在将注意力转移到描述性统计上,看看如何借助描述性统计解决分析类问题。 描述性分析 当尝试以图形形式表示数据时,例如直方图、折线图等,数据根据某种集中趋势得以呈现。集中趋势度量(例如均值、中位数或分布度的度量等)一般用于统计分析。为更好地理解统计,借助示例讨论统计中的不同度量。 汽车数据集–数据科学的数学和统计学 这是包含变量的汽车样本数据集:
在进行下一步前,先定义中心的主要度量或集中趋势度量。 中心的主要度量
使用描述性分析,可以分析样本数据集中的每个变量的平均值、标准偏差、最小值和最大值。
平均值 = (110+110+93+96+90+110+110+110)/8 = 103.625
8辆汽车的mpg : 21,21,21.3,22.8,23,23,23,23 中位数 = (22.8+23 )/2 =22.9
分布度的度量 就像中心度量一样,分布度的度量同样存在,主要包括以下度量
了解了描述性分析背后的统计数据和数学运算后,现在可以尝试在R中进行计算。 R中的统计 世界走向R的原因有n种。下面列举了其中的几个原因:
下面继续介绍R中的描述性统计。 R中的描述性统计 实际操作是更好地理解某个概念的最好方式。 本节中将会有一个小型演示,展示如何计算均值、中位数、众数、方差、标准差以及如何通过绘制直方图研究变量。这是一个非常简单的演示,但它构成了每种机器学习算法的基础。 步骤1:导入数据进行计算 >set.seed(1)#Generate random numbers and store it in a variable called data>data = runif(20,1,10) 步骤2:计算数据的均值 #Calculate Mean>mean = mean(data)>print(mean)[1] 5.996504 步骤3:计算数据的中位数 #Calculate Median>median = median(data)>print(median)[1] 6.408853 步骤4:计算数据的众数 #Create a function for calculating Mode >mode <- function(x) { >ux <- unique(x) >ux[which.max(tabulate(match(x, ux)))] } >result <- mode(data) >print(data) [1] 3.3895784.349115 6.1556809.173870 2.8151379.085507 9.5020776.947180 6.662026 [10] 1.556076 2.8537712.589011 7.1832064.456933 7.9285735.479293 7.4585679.927155 [19] 4.420317 7.997007 >cat('mode= {}', result) mode={} 3.389578 步骤5:计算数据的方差和标准偏差 #Calculate Variance and std Deviation>variance = var(data)>standardDeviation = sqrt(var(data))>print(standardDeviation)[1] 2.575061 步骤6:绘制直方图 #Plot Histogram>hist(data, bins=10, range= c(0,10), edgecolor='black') 直方图用于显示数据点的频率: 到目前为止,您已经了解了描述性统计,现在来看下推断性统计。 推断性分析统计学家使用假设检验对假设是否被接受进行正式核查。假设检验是一种推断性统计技术,用于确定数据样本中是否有足够证据推断某个条件对总体成立。 为了解一般总体的特征,我们抽取一个随机样本并分析样本的特性。我们需要检测已经确定的结论能否准确代表总体,最后还要对结果进行解读。是否接受假设取决于我们从假设中获得的百分比值。 为更好地理解这一点,让我们看一个例子。 尼克、约翰、鲍勃和哈里四个男孩逃课被抓,于是老师惩罚他们留在学校打扫教室。 推断性分析–数据科学的数学和统计学– Edureka 因此,约翰决定四人将轮流打扫教室。他想出了一个计划,将四人名字都写在便笺上,放在碗里。每天他们要从碗里抽出一个打扫教室的人。 现在已经是三天了,所有人的名字都被抽中过,除了约翰的名字!假设此事件是完全随机的,我们也不要带有任何偏见,那么你觉得约翰没有作弊的可能性是多少? 首先计算约翰一天不被选中的概率: P(约翰一天不被选中) = 3/4 = 75% 此处概率为75%,这是相当高的。如果连续三天都未选中约翰,那么概率下降到42% P(连续三天未选中约翰) = 3/4 ×3/4× 3/4 = 0.42 (approx) 现在,考虑一下连续12天都未选中约翰的情况!在这种情况下,概率下降到3.2%。因此可以得出,约翰作弊的可能性相当高。 P(连续12天未选中约翰) = (3/4) ^12 = 0.032 <?.?? 为得出结论,统计学家们定义了所谓的阈值。在上述情况中,将阈值设置为5%时,如果得出的概率低于5%,那么说明John在欺骗他人,使自己逃脱留堂的惩罚。但是,如果概率高于阈值,那么就只能说明约翰是很幸运,从未被抽中。 概率检验和假设检验引出了两个重要概念,即:
因此,在示例中,如果事件发生的概率小于5%,则它是一个有偏差的事件,因此它印证了另一种假设。 R中的推断性统计此演示使用Gapminder数据集进行假设检验。gapminder数据集的列表上包含了142个国家/地区,包括他们从1952年到2007年每五年的预期寿命、人均GDP和人口值。 首先下载gapminder软件包并将其加载到R中: #Install and Load gapminder packageinstall.packages('gapminder')library(gapminder)data('gapminder') 现在,通过使用R中的View()函数查看数据集: #Display gapminder datasetView(gapminder) 快速浏览一下数据集: 下一步是加载R提供的dplyr软件包,该软件包可谓臭名昭著。我们特别希望在dplyr软件包中使用管道(%>%)运算符。管道运算符是什么?一般而言,您可以使用它将数据从左侧管道传输到右侧管道。这一点显而易见。 #Install and Load dplyr packageinstall.packages('dplyr')library(dplyr) 下一步是比较两个地方(爱尔兰和南非)的预期寿命,并进行t检验以核查这项比较是否遵循零假设或替代假设。 #Comparing the variance in life expectancy in South Africa & Ireland df1 <-gapminder %>% select(country, lifeExp) %>% filter(country == 'South Africa' | country =='Ireland') 因此,将t检验应用于数据框(df1)并比较预期寿命后,您可以看到以下结果: #Perform t-test t.test(data = df1, lifeExp ~ country) Welch Two Sample t-test data: lifeExp by country t = 10.067, df = 19.109, p-value = 4.466e-09 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: 15.0702222.97794 sample estimates: meanin group Ireland mean in group South Africa 73.01725 53.99317 注意爱尔兰和南非的均值,您可以看到预期寿命几乎相差20个等级。现在需要核查南非和爱尔兰的预期寿命差值是否真实有效,而不仅仅只是偶然。因此,进行t检验。 请特别注意p值,也称为概率值。在确保模型重要性方面,p值是非常重要的度量。仅当p值小于预定统计显着性水平(理想情况下为0.05)时,我们才认为模型具有统计显着性。从输出值中可以发现,p值为4.466e-09,是一个非常小的值。 在模型概述中,请注意另一个称为t值的重要参数。较大的t值表明替代假设是正确的,在运气好的情况下,预期寿命的差值不等于零。因此,在这一情况下,原假设被推翻。 在本演示的最后,将绘制每个大陆的图表,通过该图表显示每个大陆的预期寿命会如何随着该大陆人均GDP的变化而变化。 #Plotting a gdpPercap vs lifeExp graph for each continent #Install and Load ggplot2 package install.packages('ggplot2') library(ggplot2) gapminder%>% filter(gdpPercap < 50000) %>% ggplot(aes(x=log(gdpPercap), y=lifeExp, col=continent, size=pop))+ geom_point(alpha=0.3)+ geom_smooth(method = lm)+ facet_wrap(~continent) 在上图中,几乎可以看到每个大陆的预期寿命相对于人均GDP的线性变化。这也表明R语言可以很好地用于统计分析。 这些就是关于数据科学中数学和统计学的完全指南了,不知道大家GET到没有? 图源:Unsplash |
|