大数据2020题库

【滴滴】

选择题(知识点)
1参数估计与假设检验的区别与联系
2 R语言中均值差异检验/t检验(基本统计分析)
3 ANOVA与机器学习
4 常用的线性回归模型
5 SPSS:T检验,方差分析,非参检验,卡方检验的使用要求和适用场景
6 SPSS离散的统计变量的显著性分析firednab,Wilcoxon
7 特征选择-方差分析

编程题

python3解一元一次方程。
题目
输入一串字符串表示一个一元一次方程,计算结果。
eg:10x-2x-8=x+7+4x

思路
1、将等号右边的减到左边,即替换=为’-(’,最后表达式加上’)’;
2、此题给出的x和数字之间没有乘号,我们现在所有x前面加上*号;
3、考虑到系数为1、-1和左括号后的x前不应该有乘号,我们将这些地方的乘号去除;
4、用python的eval函数可以生成表达式,将变量=1j带入得到结果,此时会得到real+imag j这样的一个结果,可以发现如果把j替换为x,令这个式子为0就是我们想要的最简的方程,结果x=j=(-real)/imag。

CODE

def solve(eq,var='x'):
  eq1 = eq.replace("=","-(")+")"
  eq1 = eq1.replace("x","*x")
  eq1 = eq1.replace("+*x","+x")
  eq1 = eq1.replace("-*x","-x")
  eq1 = eq1.replace("(*x","(x")
  print(eq1)
  c = eval(eq1,{
     var:1j})
  return -c.real/c.imag

test = '10x-2x-8=x+7+4x'
print(solve(test))

【途牛】

不定项选择
本套试卷共一个部分,共20题,每题5分,总分100分。
每题至少有1个正确选项,多选、少选或错选不得分。
请认真阅读每道题目,并按题目要求进行作答。
1.默认知识点多选题一般5分得分5分
SQL中,执行四舍五入的是哪个数值函数?
A: A.CEIL
B: B.FLOOR
C: C.TRUNC
D: D.ROUND
正确答案:D

2.默认知识点多选题一般5分得分0分
下列属于ORACLE的物理存储结构的是
A: A.数据文件
B: B.日志文件
C: C.参数文件
D: D.控制文件
正确答案:A,B,D

3.默认知识点多选题一般5分得分5分
在vi中退出不保存的命令是
A: A. :q
B: B. :w
C: C. :wq
D: D. :q!

正确答案:D

4.默认知识点多选题一般5分得分0分
关于SecondaryNameNode 哪项是正确的?
A: A.它是 NameNode 的热备
B: B.它对内存没有要求
C: C.它的目的是帮助 NameNode 合并编辑日志,减少 NameNode 启动时间
D: D.SecondaryNameNode 应与 NameNode 部署到一个节点

正确答案:A,C

5.默认知识点多选题一般5分得分5分
下面哪个用户不是ORACLE缺省安装后就存在的用户
A: A.SYSDBA
B: B.SYSTEM
C: C.SCOTT
D: D.SYS

正确答案:A

6.默认知识点多选题一般5分得分5分
事务的持续性是指
A: A.事务一旦提交,对数据库的改变是永久的
B: B.事务包括的所有操作要么都做,要么不做
C: C.一个事务内部的操作及使用的数据对并发的其他事务是隔离的
D: D.事务必须是使数据库从一个致性状态变到另一个致性状态

正确答案:A

7.默认知识点多选题一般5分得分5分
DDL(data definitionlanguage)是数据定义语言,下面哪个不属于
A: A. Alter
B: B. Create
C: C. Update
D: D. Drop

正确答案:C

8.默认知识点多选题一般5分得分5分
HBase 依赖什么提供强大的计算能力
A: A.Zookeeper
B: B.Chubby
C: C.RPC
D: D.MapReduce

正确答案:D

9.默认知识点多选题一般5分得分5分
以下数据结构中不属于线性数据结构的是
A: A.队列
B: B.线性表
C: C.二叉树
D: D.栈

正确答案:C

10.默认知识点多选题一般5分得分5分
下面哪个Linux命令可以一次显示一页内容
A: A. pause
B: B. cat
C: C. more
D: D. grep

正确答案:C

11.数理逻辑多选题一般5分得分5分
毕业典礼后,某宿舍三位同学把自己的毕业帽扔了,随后每个人随机地拾起帽子,三个人中没有人选到自己原来带的帽子的概率是
A: A.1/2
B: B.1/3
C: C.1/4
D: D.1/6

正确答案:B

12.机器学习多选题一般5分得分5分
以下哪些方法可以直接来对文本分类?
A: A. Kmeans
B: B. 决策树
C: C. 支持向量机
D: D. KNN

正确答案:B,C,D

13.机器学习多选题一般5分得分5分
一般,k-NN最近邻方法在哪种情况下效果较好
A: A.样本较多但典型性不好
B: B.样本较少但典型性好
C: C.样本呈团状分布
D: D.样本呈链状分布

正确答案:B

14.机器学习多选题一般5分得分0分
在其他条件不变的前提下,以下哪种做法容易引起机器学习中的过拟合问题
A: A. 增加训练集量
B: B. 减少神经网络隐藏层节点数
C: C. 删除稀疏的特征
D: D. SVM算法中使用高斯核/RBF核代替线性核

正确答案:D

15.机器学习多选题一般5分得分0分
在决策树分割结点的时候,下列关于信息增益说法正确的是?
A: A.纯度高的结点需要更多的信息来描述它
B: B.信息增益可以用”1比特-熵”获得
C: C.如果选择一个属性具有许多特征值, 那么这个信息增益是有偏差的
D: D.信息增益率对属性特征值的数量没有偏好

正确答案:B,C

16.机器学习多选题一般5分得分0分
下列哪个不属于常用的文本分类的特征选择算法?
A: A. 卡方检验值
B: B. 互信息
C: C. 信息增益
D: D. 主成分分析

正确答案:D

17.机器学习多选题一般5分得分5分
四个点坐标为(1,1),(1,0),(-1,-1),(-1,0),用 SVM 分类的决策边界是
A: y = x
B: x = 0
C: y = -x
D: y = 0

正确答案:B

18.机器学习多选题容易5分得分5分
关于特征选择,下列对 Ridge 回归和 Lasso 回归说法正确的是?
A: Ridge 回归适用于特征选择
B: Lasso 回归适用于特征选择
C: 两个都适用于特征选择
D: 以上说法都不对

正确答案:B

19.默认知识点多选题较难5分得分5分
一句sql包含以下关键词,(1):select (2):from (3):where (4):group by (5):having (6):order by,请问执行顺序是怎么样的?
A: A.(2)(3)(1)(4)(5)(6)
B: B.(2)(1)(3)(4)(5)(6)
C: C.(2)(3)(1)(5)(4)(6)
D: D.(2)(3)(4)(5)(1)(6)

正确答案:D

20.机器学习多选题较难5分得分5分
在 n 维空间中(n > 1),下列哪种方法最适合用来检测异常值?
A: 正态概率图
B: 箱形图
C: 马氏距离
D: 散点图

正确答案:C

【大华】(答案待核对)

1 以下数据库哪个为非关系型数据库
A ORACLE
B DB2
C REDIS
D MYSQL
正确答案:C

2 下列哪项是集群的最主要瓶颈
A CPU
B 网络
C 磁盘IO
D 内存
正确答案:C

3 关于触发器叙述正确的是
A 触发器是自动进行的,可以在一定条件下触发
B 触发器不可同步数据库的相关表进行级联更改
C SQL Server不支持DDL触发器
D 触发器不属于存储过程

4关于int a[3][4]=0,说法正确的是
数据a中每个元素均被初始化为0

5一个机器人玩抛硬币的游戏,一直不停抛一枚不均匀的硬币,A和B两面,概率分别为3/4和1/4。问第一次出现连续的两个A面的时候,期望是
28/9
假设T为扔的次数(期望),如果扔到B,则重新开始,继续扔。
第一次扔到B,重新扔,即1/4*(1+T)。
第一次扔到A,第二次扔到B,重新扔,即3/41/4(2+T);2+T是结束游戏次数。
第一次扔到A,第二次扔到A,结束游戏。3/43/42;2为结束游戏次数。
所以T=1/4*(1+T)+3/41/4(2+T)+3/43/42;算得为T=28/9.

6 中文同义替换时,用到Word2vec,说法错误的是
A Word2vec结果符合当前语料环境
B Word2vec基于概率统计
C 得到都是语义上的同义词
D 受限于训练语料的数据和质量
正确答案:C

7 N-Gram被定义为N个关键词组合在一起,给定“浙江大华技术股份有限公司”,可以产生多少个二元组短语(Bigram)
A 6
B 9
C 10
D 11

8 如果神经网络中使用线性激活函数,那么是否还能表征异或函数
A 可以
B 不可以

9 若一课二叉树的前序遍历为a,e,b,d,c,后续遍历为b,c,d,c,e,a,则根节点的孩子节点为
A e,c
B e,b
C 只有e
D 不确定

10 10个不同的玩具,分给3个人,每个人至少要得到一个,有多少不同分法
A 33
B 34
C 35
D 36
正确答案:C

问答题
1 数仓–Hive-面试之简述UDF/UDAF/UDTF是什么,各自解决问题及应用场景
UDF会经常写,UDAF不经常写,但是会经常被面试问到

UDF
User-Defined-Function 自定义函数 、一进一出;

背景

系统内置函数无法解决实际的业务问题,需要开发者自己编写函数实现自身的业务实现诉求。
应用场景非常多,面临的业务不同导致个性化实现很多,故udf很需要。
意义

函数扩展得到解决,极大丰富了可定制化的业务需求。
IO要求-要解决的问题
in:out=1:1,只能输入一条记录当中的数据,同时返回一条处理结果。
属于最常见的自定义函数,像cos,sin,substring,indexof等均是如此要求
实现步骤(Java创建自定义UDF类)

自定义一个java类
继承UDF类
重写evaluate方法
打包类所在项目成一个all-in-one的jar包并上传到hive所在机器
在hive中执行add jar操作,将jar加载到classpath中。
在hive中创建模板函数,使得后边可以使用该函数名称调用实际的udf函数
hive sql中像调用系统函数一样使用udf函数
代码实现

功能要求:实现当输入字符串超过2个字符的时候,多余的字符以”…”来表示。
如“12”则返回“12”,如“123”返回“12…”
自定义类、继承UDF、重写evaluate方法已在代码中体现

import org.apache.hadoop.hive.ql.exec.UDF;
/*
 * 功能:实现当输入字符串超过2个字符的时候,多余的字符以"..."来表示。
 * 输入/输出:* 如“12”则返回“12”,如“123”返回“12..."
 */
public class ValueMaskUDF extends UDF{
     
       public String evaluate(String input,int maxSaveStringLength,String replaceSign) {
     
             if(input.length()<=maxSaveStringLength){
     
                    return input;
             }
             return input.substring(0,maxSaveStringLength)+replaceSign;
       }
       public static void main(String[] args) {
     
             System.out.println(new ValueMaskUDF().evaluate("河北省",2,"..."));;
       }
}

UDAF
自定义udaf函数self_count,实现系统udaf count的功能

Input/Output要求-要解决的问题

in:out=n:1,即接受输入N条记录当中的数据,同时返回一条处理结果。
属于最常见的自定义函数,像count,sum,avg,max等均是如此要求
实现步骤

自定义一个java类
继承UDAF类
内部定义一个静态类,实现UDAFEvaluator接口
实现方法init,iterate,terminatePartial,merge,terminate,共5个方法. 详见下图
在hive中执行add jar操作,将jar加载到classpath中。
在hive中创建模板函数,使得后边可以使用该函数名称调用实际的udf函数
hive sql中像调用系统函数一样使用udaf函数
大数据2020题库_第1张图片
业务测试
大数据2020题库_第2张图片
UDAF代码开发

import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import org.apache.hadoop.hive.ql.exec.UDAF;
import org.apache.hadoop.hive.ql.exec.UDAFEvaluator;
import org.apache.log4j.Logger;
/**
* 实现多条数据合并成一条数据
*/
// 主类继承UDAF
public class StudentScoreAggUDAF extends UDAF {
     
    // 日志对象初始化
    public static Logger logger = Logger.getLogger(StudentScoreAggUDAF.class);
    // 静态类实现UDAFEvaluator
    public static class Evaluator implements UDAFEvaluator {
     
        // 设置成员变量,存储每个统计范围内的总记录数
        private Map<String, String> courseScoreMap;

        //初始化函数,mapreduce均会执行该函数,起到初始化所需要的变量的作用
        public Evaluator() {
     
            init();
        }
        // 初始化函数间传递的中间变量
        public void init() {
     
            courseScoreMap = new HashMap<String, String>();
        }

         //map阶段,返回值为boolean类型,当为true则程序继续执行,当为false则程序退出  
        public boolean iterate(String course, String score) {
     
            if (course == null || score == null) {
     
                return true;
            }
            courseScoreMap.put(course, score);
            return true;
        }
         /**
         * 类似于combiner,map范围内做部分聚合,将结果传给merge函数中的形参mapOutput  
         * 如果需要聚合,则对iterator返回的结果处理,否则直接返回iterator的结果即可
         */
        public Map<String, String> terminatePartial() {
     
            return courseScoreMap;
        }
         // reduce 阶段,用于逐个迭代处理map当中每个不同key对应的 terminatePartial的结果
        public boolean merge(Map<String, String> mapOutput) {
     
            this.courseScoreMap.putAll(mapOutput);
            return true;
        }
        // 处理merge计算完成后的结果,即对merge完成后的结果做最后的业务处理
        public String terminate() {
     
            return courseScoreMap.toString();
        }
    }
}

测试sql语句

select id,username,score_agg(course,score) from student_score group by id,username;

UDTF
User-Defined Table-Generating Functions
要解决一行输入多行输出的问题,问题的应用场景不少
用udtf解决一行输入多行输出的不多,往往被lateral view explode+udf等替代实现,比直接用udtf会更简单、直接一些

2 CNN与LSTM的优缺点
(一)CNN 卷积神经网络

在机器学习中,卷积神经网络是一种深度前馈人工神经网络,已成功地应用于图像识别。 [1]

卷积神经网络,是一种前馈神经网络,人工神经元可以响应周围单元,可以进行大型图像处理。卷积神经网络包括卷积层和池化层。

卷积神经网络包括一维卷积神经网络、二维卷积神经网络以及三维卷积神经网络。一维卷积神经网络常应用于序列类的数据处理;二维卷积神经网络常应用于图像类文本的识别;三维卷积神经网络主要应用于医学图像以及视频类数据识别。

卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。 [2] 它包括卷积层(convolutional layer)和池化层(pooling layer)。

卷积神经网络是近年发展起来,并引起广泛重视的一种高效识别方法。20世纪60年代,Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时发现其独特的网络结构可以有效地降低反馈神经网络的复杂性,继而提出了卷积神经网络(Convolutional Neural Networks-简称CNN)。现在,CNN已经成为众多科学领域的研究热点之一,特别是在模式分类领域,由于该网络避免了对图像的复杂前期预处理,可以直接输入原始图像,因而得到了更为广泛的应用。 K.Fukushima在1980年提出的新识别机是卷积神经网络的第一个实现网络。随后,更多的科研工作者对该网络进行了改进。其中,具有代表性的研究成果是Alexander和Taylor提出的“改进认知机”,该方法综合了各种改进方法的优点并避免了耗时的误差反向传播。

一般地,CNN的基本结构包括两层,其一为特征提取层,每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征。一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来;其二是特征映射层,网络的每个计算层由多个特征映射组成,每个特征映射是一个平面,平面上所有神经元的权值相等。特征映射结构采用影响函数核小的sigmoid函数作为卷积网络的激活函数,使得特征映射具有位移不变性。此外,由于一个映射面上的神经元共享权值,因而减少了网络自由参数的个数。卷积神经网络中的每一个卷积层都紧跟着一个用来求局部平均与二次提取的计算层,这种特有的两次特征提取结构减小了特征分辨率。

CNN主要用来识别位移、缩放及其他形式扭曲不变性的二维图形,该部分功能主要由池化层实现。由于CNN的特征检测层通过训练数据进行学习,所以在使用CNN时,避免了显式的特征抽取,而隐式地从训练数据中进行学习;再者由于同一特征映射面上的神经元权值相同,所以网络可以并行学习,这也是卷积网络相对于神经元彼此相连网络的一大优势。卷积神经网络以其局部权值共享的特殊结构在语音识别和图像处理方面有着独特的优越性,其布局更接近于实际的生物神经网络,权值共享降低了网络的复杂性,特别是多维输入向量的图像可以直接输入网络这一特点避免了特征提取和分类过程中数据重建的复杂度。

模型优缺点:优点:(1)权重共享策略减少了需要训练的参数,相同的权值可以让滤波器不受信号位置的影响来检测信号的特性,使得训练出来的模型的泛华能力更强;(2)池化运算可以降低网络的空间分辨率,从而消除信号的微小偏移和扭曲,从而对输入数据的平移不变性要求不高缺点:

(二)RNN 循环神经网络​​​​​​​

既然我们已经有了人工神经网络和卷积神经网络,为什么还要循环神经网络?
原因很简单,无论是卷积神经网络,还是人工神经网络,他们的前提假设都是:元素之间是相互独立的,输入与输出也是独立的,比如猫和狗。
但现实世界中,很多元素都是相互连接的,比如股票随时间的变化,一个人说了:我喜欢旅游,其中最喜欢的地方是云南,以后有机会一定要去__________.这里填空,人应该都知道是填“云南“。因为我们是根据上下文的内容推断出来的,但机会要做到这一步就相当得难了。因此,就有了现在的循环神经网络,他的本质是:像人一样拥有记忆的能力。因此,他的输出就依赖于当前的输入和记忆。
RNN 递归/循环神经网络 时间序列数据的首选神经网络主要用在自然语言处理,语音识别等。 简单入门循环神经网络RNN:时间序列数据的首选神经网络1.CNN是刻画特征模拟的神经网络结构,无法对时间序列上的变化进行建模。然而,样本出现的时间顺序对于自然语言处理、语音识别、手写体识别等应用非常重要。对于这种需求就产生了循环神经网络RNN。CNN,DNN都无法分析输入信息之间的整体逻辑序列。这些信息富含大量的内容,信息彼此间有着复杂的时间关联性,并且信息长度各种各样。这是以上模型所无法解决的,递归神经网络正是为了解决这种序列问题应运而生,其关键之处在于当前网络的隐藏状态会保留先前的输入信息,用来作当前网络的输出。许多任务需要处理序列数据,比如语音处理,人机对话,文本处理等都要求模型的输入是序列数据。
2. 训练过程递归神经网络中由于输入时叠加了之前的信号,所以反向传导时不同于传统的神经网络,因为对于时刻t的输入层,其残差不仅来自于输出,还来自于之后的隐层。通过反向传递算法,利用输出层的误差,求解各个权重的梯度,然后利用梯度下降法更新各个权重3. 模型优缺点优点:模型是时间维度上的深度模型,可以对序列内容建模;缺点:(1)需要训练的参数多,容易造成梯度消散或梯度爆炸问题;(2)不具有特征学习能力

(三)LSTM 长短期记忆网络

LSTM(Long Short-Term Memory)是长短期记忆网络,是一种时间递归神经网络,适合于处理和预测时间序列中间隔和延迟相对较长的重要事件。

LSTM 已经在科技领域有了多种应用。基于 LSTM 的系统可以学习翻译语言、控制机器人、图像分析、文档摘要、语音识别图像识别、手写识别、控制聊天机器人、预测疾病、点击率和股票、合成音乐等等任务。

在 2015 年,谷歌通过基于CTC 训练的 LSTM 程序大幅提升了安卓手机和其他设备中语音识别的能力,其中就使用了Jürgen Schmidhuber的实验室在 2006 年发表的方法。百度也使用了 CTC;苹果的 iPhone 在 QuickType 和 Siri 中使用了 LSTM;微软不仅将 LSTM 用于语音识别,还将这一技术用于虚拟对话形象生成和编写程序代码等等。亚马逊 Alexa 通过双向 LSTM 在家中与你交流,而谷歌使用 LSTM 的范围更加广泛,它可以生成图像字幕,自动回复电子邮件,它包含在新的智能助手 Allo 中,也显著地提高了谷歌翻译的质量(从 2016 年开始)。目前,谷歌数据中心的很大一部分计算资源现在都在执行 LSTM 任务。

LSTM区别于RNN的地方,主要就在于它在算法中加入了一个判断信息有用与否的“处理器”,这个处理器作用的结构被称为cell。

一个cell当中被放置了三扇门,分别叫做输入门、遗忘门和输出门。一个信息进入LSTM的网络当中,可以根据规则来判断是否有用。只有符合算法认证的信息才会留下,不符的信息则通过遗忘门被遗忘。

说起来无非就是一进二出的工作原理,却可以在反复运算下解决神经网络中长期存在的大问题。目前已经证明,LSTM是解决长序依赖问题的有效技术,并且这种技术的普适性非常高,导致带来的可能性变化非常多。各研究者根据LSTM纷纷提出了自己的变量版本,这就让LSTM可以处理千变万化的垂直问题。

(四) kNN(k最近邻) 不是神经网络

kNN(k-Nearest Neighbours)是机器学习中最简单易懂的算法,它的适用面很广,并且在样本量足够大的情况下准确度很高,多年来得到了很多的关注和研究。kNN 可以用来进行分类或者回归,大致方法基本相同,本篇文章将主要介绍使用 kNN 进行分类。链接:https://zhuanlan.zhihu.com/p/22345658主要用于KNN只是取了最近的几个样本点做平均而已,离预测数据较远的训练数据对预测结果不会造成影响。kNN(k-Nearest Neighbor)算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 kNN方法在类别决策时,只与极少量的相邻样本有关。由于kNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,kNN方法较其他方法更为适合。优缺点:优点1.简单,易于理解,易于实现,无需估计参数,无需训练理论成熟,思想简单,既可以用来做分类也可以用来做回归;2. 适合对稀有事件进行分类;3.特别适合于多分类问题(multi-modal,对象具有多个类别标签), kNN比SVM的表现要好。 缺点:该方法的另一个不足之处是计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点。计算量大,需要大量的内存,;样本不平衡问题(KNN只是取了最近的几个样本点做平均而已,离预测数据较远的训练数据对预测结果不会造成影响),可以避免样本不平衡问题,样本数据大对算法没有影响;

你可能感兴趣的:(数据分析与挖掘,python)