当前位置: 首页 > 编程日记 > 正文

假设检验怎么做?这次把方法+Python代码一并教给你

640?wx_fmt=jpeg
(图片付费下载于视觉中国)

作者 | Jose Garcia

译者 | 张睿毅

校对 | 张一豪、林亦霖

编辑 | 于腾凯

来源 | 数据派THU(ID:DatapiTHU)

【导读】本文中,作者给出了假设检验的解读与Python实现的详细的假设检验中的主要操作。


也许所有机器学习的初学者,或者中级水平的学生,或者统计专业的学生,都听说过这个术语,假设检验。我将简要介绍一下这个当我学习时给我带来了麻烦的主题。我把所有这些概念放在一起,并使用python进行示例。

在我寻求更广泛的事情之前要考虑一些问题 ——什么是假设检验?我们为什么用它?什么是假设的基本条件?什么是假设检验的重要参数?

让我们一个个地开始吧:

1、 什么是假设检验?

假设检验是一种统计方法,用于使用实验数据进行统计决策。假设检验基本上是我们对人口参数做出的假设。

例如:你说班里的学生平均年龄是40岁,或者一个男生要比女生高。

我们假设所有这些例子都需要一些统计方法来证明这些。无论我们假设什么是真的,我们都需要一些数学结论。


2、我们为什么要用它?

假设检验是统计学中必不可少的过程。假设检验评估关于总体的两个相互排斥的陈述,以确定样本数据最佳支持哪个陈述。当我们说一个发现具有统计学意义时,这要归功于一个假设检验。

3、什么是假设的基本条件?

640?wx_fmt=png

不同均值和方差下的正态分布


假设的基础是规范化和标准规范化

https://en.wikipedia.org/wiki/Normalization_(statistics);https://stats.stackexchange.com/questions/10289/whats——the——difference——between——normalization——and——standardization

我们所有的假设都围绕这两个术语的基础。让我们看看这些。

640?wx_fmt=png

标准化的正态曲线图像和数据分布及每个部分的百分比

你一定想知道这两个图像之间有什么区别,有人可能会说我找不到,而其他人看到的图像会比较平坦,而不是陡峭的。好吧伙计这不是我想要表达的,首先你可以看到有不同的正态曲线所有那些正态曲线可以有不同的均值和方差,如第二张图像,如果你注意到图形是合理分布的,总是均值= 0和方差= 1。当我们使用标准化的正态数据时,z—score的概念就出现了。

正态分布

如果变量的分布具有正态曲线的形状——一个特殊的钟形曲线,则该变量被称为正态分布或具有正态分布。正态分布图称为正态曲线,它具有以下所有属性:1.均值,中位数和众数是相等。

640?wx_fmt=png

正态分布方程

640?wx_fmt=png

标准化正态分布

标准正态分布是平均值为0,标准差为1的正态分布


4、哪些是假设检验的重要参数?

  • 零假设:

在推论统计中,零假设是一种普遍的说法或默认的观点,即两个测量现象之间没有关系,或者分组间没有关联

换句话说,它是一个基本假设,或基于领域或问题知识。

示例:公司的生产力=50个单位/天等

  • 备择假设:

另一种假设是假设检验中使用的假设与零假设相反。通常认为观察是真实效果的结果(叠加了一定量的偶然的变化)

640?wx_fmt=png
零假设与备择假设

示例:公司生产≠50单位/每天等。

重要程度:指我们接受或拒绝无效假设的重要程度。接受或拒绝假设不可能100%准确,因此我们选择通常为5%的重要程度。

这通常用alpha(数学符号)表示,通常为0.05或5%,这意味着您的输出应该有95%的信心在每个样本中给出类似的结果。

I型错误:当我们拒绝零假设时,尽管该假设是正确的。类型I错误由alpha表示。在假设检验中,显示关键区域的正常曲线称为α区域。

II型错误:当我们接受零假设但它是错误的。II型错误用beta表示。在假设检验中,显示接受区域的正常曲线称为β区域。

单尾测试:统计假设的测试,其中拒绝区域仅在采样分布的一侧,称为单尾测试。

例如:一所大学有≥4000名学生或数据科学≤80%采用的组织。

双尾测试:双尾测试是一种统计测试,其中分布的关键区域是双侧的,并测试样本是否大于或小于某个值范围。如果被测试的样本属于任一关键区域,则接受替代假设而不是零假设。

例如:一所大学!= 4000名学生或数据科学!= 80%的组织采用。

640?wx_fmt=png

单尾和双尾图像

P值:P值或计算概率是当研究问题的零假设(H 0)为真时,找到观察到的或更极端的结果的概率 —— “极端”程度的定义取决于假设如何被检测。

如果您的P值小于选定的显着性水平,那么就拒绝原假设,即接受样本提供合理的证据来支持备选假设。它并不意味着“有意义”或“重要”的差异;这是在考虑结果的真实相关性时决定的。

例如:你有一枚硬币而你不知道这是否公平或棘手所以让我们决定零和备择假设

H0:硬币是一个公平的硬币。
H1:硬币是一个狡猾的硬币。并且alpha = 5%或0.05

现在让我们掷硬币并计算p值(概率值)。

第一次投掷硬币,结果是尾部P值= 50%(头部和尾部的概率相等)
第二次抛硬币,结果是尾巴,现在p值= 50/2 = 25%

同样地,我们连续6次投掷并得到P值= 1.5%的结果,但是我们将显着性水平设置为95%表示我们允许的5%错误率,在这里我们看到我们超出了那个水平,即我们的零假设不成立,所以我们需要拒绝并提出这个硬币实际上是一个狡猾的硬币。

自由度:  现在想象你对期望值没有兴趣,你对数据分析感兴趣。您有一个包含10个值的数据集。如果你没有估算任何东西,每个值都可以取任何数字,对吧?每个值都可以完全自由变化。但是假设您想使用单样本t检验来测试10个值的样本的总体平均值。你现在有一个约束——平均值的估计。究竟是什么约束?通过定义均值,必须保持以下关系:数据中所有值的总和必须等于n x mean,其中n是数据集中的值的数量。

因此,如果数据集有10个值,则10个值的总和必须等于平均值x 10.如果10个值的平均值为3.5(您可以选择任何数字),则此约束要求10个值的总和必须等于10 x 3.5 = 35。

使用该约束,数据集中的第一个值可以自由变化。无论它是什么价值,所有10个数字的总和仍然可以具有35的值。第二个值也可以自由变化,因为无论你选择什么值,它仍然允许所有值的总和的可能性是35岁。

现在让我们看一些广泛使用的假设检验类型:

  1. T校验(学生T校验)
  2. Z校验
  3. ANOVA校验
  4. 卡方检验

T—检验:t检验是一种推论统计量,用于确定在某些特征中可能与两组的均值之间是否存在显着差异。它主要用于数据集,如通过翻转硬币100次记录为结果的数据集,将遵循正态分布并且可能具有未知的方差。
链接:
https://www.investopedia.com/terms/v/variance.asp

T检验用作假设检验工具
链接:
https://www.investopedia.com/terms/h/hypothesistesting.asp

其允许测试适用于群体的假设。

T检验有两种类型:

  1. 单样本t检验
  2. 双样本t检验

单样本t检验:单样本t检验确定样本均值是否与已知或假设的总体均值具有统计学差异。单样本t检验是参数检验。

例如:你有10个年龄,你正在检查平均年龄是否为30岁。 (使用python查看下面的代码)
from scipy.stats import ttest_1sampimport 	
numpy as npages = np.genfromtxt	
(“ages.csv”)print(ages)ages_mean = np.mean(ages)	
print(ages_mean)tset, pval = ttest_1samp(ages, 30)	
print(“p-values”,pval)if pval < 0.05:    # alpha value is 0.05 or 5%   print	
(" we are rejecting null hypothesis")else: 	print("we are accepting null hypothesis”)

上面代码的结果如下:
640?wx_fmt=png
单样本t测试结果

双样本t检验:独立样本t检验或双样本t检验比较两个独立组的平均值,以确定是否有统计证据表明相关的人口均值存在显着差异。独立样本t检验是参数检验。该测试也称为:独立t检验。

示例:在week1和week2之间是否存在任何关联(代码在下面的python中给出)
from scipy.stats import ttest_indimport numpy as npweek1 = np.genfromtxt	
("week1.csv",  delimiter=",")	
week2 = np.genfromtxt	
("week2.csv",  delimiter=",")print(week1)	
print("week2 data :-\n")print(week2)	
week1_mean = np.mean(week1	
)week2_mean = np.mean(week2)print	
("week1 mean value:",week1_mean)print	
("week2 mean value:",week2_mean)	
week1_std = np.std(week1)week2_std = 	
np.std(week2)print("week1 std value:",week1_std)	
print("week2 std value:",week2_std)	
ttest,pval = ttest_ind(week1,week2)print	
("p-value",pval)if pval <0.05:  print	
("we reject null hypothesis")else:  print("we accept null hypothesis”)

640?wx_fmt=png
双样本t校验结果

配对样本t检验:配对样本t检验也称为依赖样本t检验。这是一个单变量测试,测试2个相关变量之间的显着差异。这方面的一个例子是,如果您在某些治疗,病症或时间点之前和之后收集个人的血压。

H0:表示两个样本之间的差异为0。
H1:两个样本之间的平均差异不是0。

执行下面的代码可以得到同样的结果。
import pandas as pd	
from scipy import stats	
df = pd.read_csv("blood_pressure.csv")	
df[['bp_before','bp_after']].describe()	
ttest,pval = stats.ttest_rel(df['bp_before'], df['bp_after'])	
print(pval)	
if pval<0.05:	print("reject null hypothesis")	
else:	print("accept null hypothesis")
什么时候可以运行Z校验。

在统计学中使用几种不同类型的校验(即f检验,卡方检验,t检验)
链接:
https://www.statisticshowto.datasciencecentral.com/probability——and——statistics/hypothesis——testing/f——test/
https://www.statisticshowto.datasciencecentral.com/probability——and——statistics/chi——square/
https://www.statisticshowto.datasciencecentral.com/probability——and——statistics/t——test/

在下列情况下,您将使用Z测试:

  • 您的样本量大于30,否则,请使用t检验。

链接:
https://www.statisticshowto.datasciencecentral.com/probability——and——statistics/find——sample——size/
  • 数据点应彼此独立,换句话说,一个数据点不相关或不影响另一个数据点。

链接:
https://www.statisticshowto.datasciencecentral.com/probability——and——statistics/dependent——events——independent/
  • 您的数据应该是正常分布的。但是,对于大样本量(超过30个),这并不总是重要的。

  • 您的数据应从人口中随机选择,每个项目都有相同的选择机会。

  • 如果可能的话,样本量应该相等。


再举一个例子,我们使用z-test进行血压测量,如156个单样本Z检验。
import pandas as pd	
from scipy import statsfrom statsmodels.stats	import weightstats as stestsztest ,pval = stests.ztest(df['bp_before'], x2=None, value=156)	
print(float(pval))if pval<0.05:	print("reject null hypothesis")	
else:   	print("accept null hypothesis")

双样本Z检验:在两个样本z检验中,类似于t检验,我们检查两个独立的数据组并确定两个组的样本均值是否相等。

H0:两组的平均值为0
H1:两组的平均值不为0

例:我们检查血液之后和血液数据之前的血液数据。(下面是python代码)
ztest ,pval1 = stests.ztest(df['bp_before'],	
x2=df['bp_after'],	
value=0,alternative='two-sided')print(float(pval1))if pval<0.05:	print("reject null hypothesis")else:    print("accept null hypothesis")

ANOVA(F-检验):t检验在处理两组时效果很好,但有时我们想要同时比较两组以上。例如,如果我们想根据种族等某些分类变量来测试选民年龄是否不同,我们必须比较每个级别的平均值或对变量进行分组。我们可以为每对组进行单独的t检验,但是当你进行多次检测时,你会增加误报的可能性。方差分析或ANOVA,是一种统计推断测试,可让您同时比较多个组。
链接:
https://en.wikipedia.org/ wiki/Analysis_of_variance

F =组间变异性/组间变异性

640?wx_fmt=png
F校验或ANOVA实例图

与z和t分布不同,F分布没有任何负值,因为由于每个偏差的平方,组内变异和组内变异总是正的。

单向F检验(ANOVA):根据它们的平均相似度和f分数来判断两个或更多个组是否相似。

示例:有3种不同的植物类别及其重量,需要检查所有3组是否相似(下面是python代码)
df_anova = pd.read_csv('PlantGrowth.csv')	
df_anova = df_anova[['weight','group']]grps = pd.unique(df_anova.group.values)	
d_data = {grp:df_anova['weight'][df_anova.group == grp] for grp in grps}	F, p = stats.f_oneway(d_data['ctrl'], d_data['trt1'], d_data['trt2'])	
print("p-value for significance is: ", p)	
if p<0.05: 	print("reject null hypothesis")	
else:  	print("accept null hypothesis")

双向F检验: 双向F检验是单向检验的扩展。当我们有2个自变量和2个以上的组时使用它。双向F检验并不能说明哪个变量占主导地位。如果我们需要检查个体意义,则需要进行事后测试。
链接:
https://stattrek.com/Help/Glossary.aspx? Target=Categorical%20variable

现在让我们来看看平均作物产量(不是任何小组的平均作物产量),以及每个因子的平均作物产量,以及组合在一起的因子。

import statsmodels.api as sm	
from statsmodels.formula.api import olsdf_anova2 =	pd.read_csv	
("https://raw.githubusercontent.com/Opensourcefordatascience/Data-sets/master/crop_yield.csv")	
model = ols('Yield ~ C(Fert)*C(Water)'	
, df_anova2).fit()print(f"Overall model F	
({model.df_model: .0f},{model.df_resid: .0f}) = {model.fvalue: .3f}, p = {model.f_pvalue: .4f}")	
res = sm.stats.anova_lm(model, typ= 2)res

卡方检验: 当您从单个总体中获得两个分类变量时,将应用此测试。它用于确定两个变量之间是否存在显着关联。
链接:
https://stattrek.com/Help/ Glossary.aspx?Target=Categorical%20variable

例如,在选举调查中,选民可能按性别(男性或女性)和投票偏好(民主党,共和党或独立团体)进行分类。我们可以使用卡方检验来确定独立性,以确定性别是否与投票偏好相关。

以下为python代码
df_chi = pd.read_csv('chi-test.csv')	
contingency_table=pd.crosstab(df_chi["Gender"],df_chi["Shopping?"])	
print('contingency_table :-\n',contingency_table)	
#Observed ValuesObserved_Values = contingency_table.values print	
("Observed Values :	
\n",Observed_Values)b=stats.chi2_contingency(contingency_table)	
Expected_Values = b[3]print	
("Expected Values :-\n",Expected_Values)	
no_of_rows=len(contingency_table.iloc[0:2,0])	
no_of_columns=len(contingency_table.iloc[0,0:2])ddof=(no_of_rows-1)*(no_of_columns-1)print	
("Degree of Freedom:-",ddof	
)alpha = 0.05from scipy.stats import chi2chi_square=sum([(o-e)	
**2./e for o,e in zip(Observed_Values,Expected_Values)])	
chi_square_statistic=chi_square[0]+chi_square[1]print	
("chi-square statistic:-",chi_square_statistic)	
critical_value=chi2.ppf(q=1-alpha,df=ddof)print	
('critical_value:',critical_value)	
#p-valuep_value=1-chi2.cdf(x=chi_square_statistic,df=ddof)	
print('p-value:',p_value)print('Significance level: ',alpha)	
print('Degree of Freedom: ',ddof)	
print('chi-square statistic:',chi_square_statistic)	
print('critical_value:',critical_value)print('p-value:',p_value)	
if chi_square_statistic>=critical_value:    print	
("Reject H0,There is a relationship 	
between 2 categorical variables")	
else:    print("Retain H0,There is no relationship	between 2 categorical variables")  	if p_value<=alpha:    print	
("Reject H0,There is a relationship 	
between 2 categorical variables")else:    print	
("Retain H0,There is no relationship between 2 categorical variables")

译者介绍:张睿毅,北京邮电大学大二物联网在读。我是一个爱自由的人。在邮电大学读第一年书我就四处跑去蹭课,折腾整一年惊觉,与其在当下焦虑,不如在前辈中沉淀。于是在大二以来,坚持读书,不敢稍歇。资本主义国家的科学观不断刷新我的认知框架,同时因为出国考试很早出分,也更早地感受到自己才是那个一直被束缚着的人。太多真英雄在社会上各自闪耀着光芒。这才开始,立志终身向遇到的每一个人学习。做一个纯粹的计算机科学里面的小学生。喜欢算法,数据挖掘,图像识别,自然语言处理,神经网络,人工智能等方向。

原文链接:

https://towardsdatascience.com/hypothesis-testing-in-machine-learning-using-python-a0dc89e169ce


(*本文为AI科技大本营转载文章,转载请联系作者)

精彩推荐


倒计时!由易观携手CSDN联合主办的第三届易观算法大赛还剩 7 天,冠军团队将获得3万元!

本次比赛主要预测访问平台的相关事件的PV,UV流量(包括Web端,移动端等),大赛将会提供相应事件的流量数据,以及对应时间段内的所有事件明细表和用户属性表等数据,进行模型训练,并用训练好的模型预测规定日期范围内的事件流量。

640?wx_fmt=jpeg

推荐阅读

  • 知乎算法团队负责人孙付伟:Graph Embedding在知乎的应用实践

  • 必看,61篇NeurIPS深度强化学习论文解读都这里了

  • 打破深度学习局限,强化学习、深度森林或是企业AI决策技术的“良药”

  • 激光雷达,马斯克看不上,却又无可替代?

  • 卷积神经网络中十大拍案叫绝的操作

  • Docker是啥?容器变革的火花?

  • 5大必知的图算法,附Python代码实现

  • 阿里云弹性计算负责人蒋林泉:亿级场景驱动的技术自研之路

  • 40 岁身体死亡,11 年后成“硅谷霍金”,他用一块屏幕改变 100 万人!

  • AI大神如何用区块链解决模型训练痛点, AI+区块链的正确玩法原来是这样…… | 人物志



640?wx_fmt=png
你点的每个“在看”,我都认真当成了喜欢

相关文章:

C++实现tar包解析

tar(tape archive)是Unix和类Unix系统上文件打包工具&#xff0c;可以将多个文件合并为一个文件&#xff0c;使用tar工具打出来的包称为tar包。一般打包后的文件名后缀为”.tar”&#xff0c;也可以为其它。tar代表未被压缩的tar文件&#xff0c;已被压缩的tar文件则追加压缩文…

HTML5的学习,各个标签的尝试

style标签的使用可以更好的改变各个标题风格 基本标签<p>,标题<h>,这里br是换行。 超链接的使用&#xff0c;属性href。 表格的使用table。 最后就是图片 img&#xff0c;和音频audio插入地址即可。 今天的学习就分享这些&#xff0c;谢谢大家。转载于:https://www…

Android获取内部和SDCard的存储空间

有时我们开Android项目开发时会用到文件存储或上传文件的一些操作&#xff0c;那么我们前提是要获取到该存储设备的大小&#xff0c;以方便于与我们需要操作的文件的大小做比较&#xff0c;如果操作的文件大小小于存储空间&#xff0c;那么就可以继续操作&#xff0c;反之则不能…

排序算法 Java实现

选择排序 核心思想 选择最小元素&#xff0c;与第一个元素交换位置&#xff1b;剩下的元素中选择最小元素&#xff0c;与当前剩余元素的最前边的元素交换位置。 分析 选择排序的比较次数与序列的初始排序无关&#xff0c;比较次数都是N(N-1)/2。 移动次数最多只有n-1次。 因此&…

正则表达式简介及在C++11中的简单使用

正则表达式(regular expression)是计算机科学中的一个概念&#xff0c;又称规则表达式&#xff0c;通常简写为regex、regexp、RE、regexps、regexes、regexen。 正则表达式是一种文本模式。正则表达式是强大、便捷、高效的文本处理工具。正则表达式本身&#xff0c;加上如同一…

经典再读 | NASNet:神经架构搜索网络在图像分类中的表现

&#xff08;图片付费下载于视觉中国&#xff09;作者 | Sik-Ho Tsang译者 | Rachel编辑 | Jane出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;【导读】从 AutoML 到 NAS&#xff0c;都是企业和开发者的热门关注技术&#xff0c;以往我们也分享了很多相关…

javascript面向对象技术基础(二)

数组我们已经提到过,对象是无序数据的集合,而数组则是有序数据的集合,数组中的数据(元素)通过索引(从0开始)来访问,数组中的数据可以是任何的数据类型.数组本身仍旧是对象,但是由于数组的很多特性,通常情况下把数组和对象区别开来分别对待(Throughout this book, objects and a…

MediaPipe:Google Research 开源的跨平台多媒体机器学习模型应用框架

作者 | MediaPipe 团队来源 | TensorFlow&#xff08;ID&#xff1a;tensorflowers&#xff09;【导读】我爱计算机视觉&#xff08;aicvml&#xff09;CV君推荐道&#xff1a;“虽然它是出自Google Research&#xff0c;但不是一个实验品&#xff0c;而是已经应用于谷歌多款产…

机器学习研究的七个迷思

作者 Oscar Chang 总结了机器学习研究中的七大迷思&#xff0c;每个问题都很有趣&#xff0c;也可能是你在研究机器学习的过程中曾经遇到过的“想当然”问题。AI 前线对这篇文章进行了编译&#xff0c;以飨读者。迷思之一&#xff1a;TensorFlow 是张量操作库 它实际上就是一个…

Caffe源码中common文件分析

Caffe源码(caffe version:09868ac , date: 2015.08.15)中的一些重要头文件如caffe.hpp、blob.hpp等或者外部调用Caffe库使用时&#xff0c;一般都会include<caffe/common.hpp>文件&#xff0c;下面分析此文件的内容&#xff1a;1. include的文件&#xff1a;boost中…

编程乐趣:C#彻底删除文件

经常用360的文件粉碎&#xff0c;删除隐私文件貌似还不错的。不过C#也可以实现彻底删除文件。试了下用360文件恢复恢复不了源文件了。代码如下&#xff1a;public class AbsoluteFile{public event EventHandler FinishDeleteFileEvent null;public event EventHandler Finish…

大数据工程师手册:全面系统的掌握必备知识与工具

作者 | Phoebe Wong译者 | 陆离编辑 | Jane出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;前言如何才能成为一名真正的“全栈&#xff08;full-stack&#xff09;”数据科学家&#xff1f;需要了解哪些知识&#xff1f;掌握哪些技能&#xff1f;概括来讲…

JSON.stringify()

写在前边 不言而喻&#xff0c;JSON.stringify() 是用来将合法的JSON数据字符串化的&#xff01;然而在正常的工作中我们用到的只是最基础的功能&#xff1b;今天我们就探索不一样的JSON.stringify()。 基础用法 基本数据类型 JSON.stringify(2) // "2" JSON.stringi…

C++中前置声明介绍

前置声明是指对类、函数、模板或者结构体进行声明&#xff0c;仅仅是声明&#xff0c;不包含相关具体的定义。在很多场合我们可以用前置声明来代替#include语句。类的前置声明只是告诉编译器这是一个类型&#xff0c;但无法告知类型的大小&#xff0c;成员等具体内容。在未提供…

在Java SE中使用Hibernate处理数据

如今&#xff0c;Hibernate正在迅速成为非常流行的&#xff08;如果不是最流行的&#xff09;J2EE O/R映射程序/数据集成框架。它为开发人员提供了处理企业中的关系数据库的整洁、简明且强大的工具。但如果外部需要访问这些已被包装在J2EE Web应用程序中的实体又该怎么办&#…

利用OpenCV、Python和Ubidots构建行人计数器程序(附完整代码)

作者 | Jose Garcia译者 | 吴振东校对 | 张一豪、林亦霖&#xff0c;编辑 | 于腾凯来源 | 数据派&#xff08;ID&#xff1a;datapi&#xff09;导读&#xff1a;本文将利用OpenCV&#xff0c;Python和Ubidots来编写一个行人计数器程序&#xff0c;并对代码进行了较为详细的讲解…

开源软件License汇总

开源软件英文为Open Source Software&#xff0c;简称OSS&#xff0c;又称开放源代码软件&#xff0c;是一种源代码可以任意获取的计算机软件&#xff0c;这种软件的著作权持有人在软件协议的规定之下保留一部分权利并允许用户学习、修改以及以任何目的向任何人分发该软件。 某…

前深度学习时代CTR预估模型的演化之路:从LR到FFM\n

本文是王喆在 AI 前线 开设的原创技术专栏“深度学习 CTR 预估模型实践”的第二篇文章&#xff08;以下“深度学习 CTR 预估模型实践”简称“深度 CTR 模型”&#xff09;。专栏第一篇文章回顾&#xff1a;《深度学习CTR预估模型凭什么成为互联网增长的关键&#xff1f;》。重看…

神器与经典--sp_helpIndex

每每和那些NB的人学习技术的时候&#xff0c;往往都佩服他们对各个知识点都熟捻于心,更佩服的是可以在很短时间找出很多业界大师写的文章和开发的工具,就像机器猫的口袋&#xff0c;让人羡慕嫉妒恨啊&#xff01;宋沄剑宋桑就是其中之一,打劫其硬盘的念头已计划很久,只待时机成…

评分9.7!这本Python书彻底玩大了?程序员:真香!

「超级星推官/每周分享」是一个围绕程序员生活、学习相关的推荐栏目。CSDN出品&#xff0c;每周发布&#xff0c;暂定5期。关键词&#xff1a;靠谱&#xff01;优质&#xff01;本期内容&#xff0c;我们将抽1人送出由我司程序员奉为“超级神作”的《疯狂Python讲义》1本&#…

Caffe源码中caffe.proto文件分析

Caffe源码(caffe version:09868ac , date: 2015.08.15)中有一些重要文件&#xff0c;这里介绍下caffe.proto文件。在src/caffe/proto目录下有一个caffe.proto文件。proto目录下除了caffe.proto文件外&#xff0c;还有caffe.pb.h和caffe.pb.cc两个文件&#xff0c;此两个文件是根…

这套完美的Java环境安装教程,完整,详细,清晰可观,让你一目了然,简单易懂。⊙﹏⊙...

JDK下载与安装教程 2017年06月18日 22:53:16 Danishlyy1995 阅读数&#xff1a;349980版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/u012934325/article/details/73441617学习JAVA&#xff0c;必须得安装一下JDK(java dev…

【畅谈百度轻应用】云时代·轻应用·大舞台

云时代轻应用大舞台刘志勇君不见&#xff0c;上下班的地铁上&#xff0c;低头看手机&#xff1b;同事吃饭聊天&#xff0c;低头看手机&#xff1b;甚至朋友聚会&#xff0c;忙里偷闲打个招呼&#xff0c;然后继续低头看手机。正如微博上一个流传甚广的段子&#xff1a;“世界上…

如何画出高级酷炫的神经网络图?优秀程序员都用了这几个工具

&#xff08;图片付费下载于视觉中国&#xff09;作者 | 言有三 来源 | 有三AI&#xff08;ID&#xff1a;yanyousan_ai&#xff09;【导读】本文我们聊聊如何才能画出炫酷高大上的神经网络图&#xff0c;下面是常用的几种工具。1、NN-SVGNN-SVG 可以非常方便的画出各种类型的…

OpenBLAS简介及在Windows7 VS2013上源码的编译过程

OpenBLAS(Open Basic Linear Algebra Subprograms)是开源的基本线性代数子程序库&#xff0c;是一个优化的高性能多核BLAS库&#xff0c;主要包括矩阵与矩阵、矩阵与向量、向量与向量等操作。它的License是BSD-3-Clause&#xff0c;可以商用&#xff0c;目前最新的发布版本是0.…

技本功丨请带上纸笔刷着看:解读MySQL执行计划的type列和extra列

本萌最近被一则新闻深受鼓舞&#xff0c;西工大硬核“女学神”白雨桐&#xff0c;获6所世界顶级大学博士录取通知书。货真价值的才貌双全&#xff0c;别人家的孩子高考失利与心仪的专业失之交臂&#xff0c;选择了软件工程这门自己完全不懂的专业.即便全部归零&#xff0c;也要…

精美素材分享:16套免费的扁平化图标下载

在这篇文章中你可以看到16套华丽的扁平化图标素材&#xff0c;对于设计师来说非常有价值&#xff0c;能够帮助他们节省大量的时间。这些精美的扁平化图标可用于多种用途&#xff0c;如&#xff1a;GUI 设计&#xff0c;印刷材料&#xff0c;WordPress 主题&#xff0c;演示&…

Caffe源码中math_functions文件分析

Caffe源码(caffe version:09868ac , date: 2015.08.15)中有一些重要文件&#xff0c;这里介绍下math_functions文件。1. include文件&#xff1a;(1)、<glog/logging.h>&#xff1a;GLog库&#xff0c;它是google的一个开源的日志库&#xff0c;其使用可以参考&…

论文推荐 | 目标检测中不平衡问题算法综述

&#xff08;图片付费下载于视觉中国&#xff09;作者 | CV君来源 | 我爱计算机视觉&#xff08;ID&#xff1a;aicvml&#xff09;今天跟大家推荐一篇前几天新出的投向TPAMI的论文&#xff1a;Imbalance Problems in Object Detection: A Review&#xff0c;作者详细考察了目标…

php使用redis的GEO地理信息类型

redis3.2中增中了对GEO类型的支持&#xff0c;该类型存储经纬度&#xff0c;提供了经纬设置&#xff0c;查询&#xff0c;范围查询&#xff0c;距离查询&#xff0c;经纬度hash等操作。 <?php$redis new Redis(); $redis->connect(127.0.0.1, 6379, 60); $redis->au…