进入「数据分析真题日刷」系列第10篇 ⬇️
❤️ 「更多数据分析真题」
《数据分析真题日刷 | 目录索引》
1. 有一个64个面的骰子,其中30个面是1,34个面是2 ,当掷出1时的信息熵是( )
A. -(29/64 * log(29/64) + 34/64 * log(34/64))
B. -(29/63 * log(29/63) + 34/63 * log(34/63))
C. -(30/64 * log(30/64) + 33/64 * log(33/64))
D. -(30/63 * log(30/63) + 33/63 * log(33/63))
正确答案:A
(求解析~欢迎评论)
《信息熵及其相关概念》https://blog.csdn.net/am290333566/article/details/81187124
2. 考虑两队间的足球比赛:队0和队1。假设65%的比赛队0胜出,剩余的比赛队1获胜。队0获胜的比赛中只有30%是在队1的主场,而队1取胜的比赛中75%是主场获胜。如果下一场比赛在队1的主场进行队1获胜的概率为()
A. 0.75
B. 0.25
C. 0.4678
D. 0.5322
官方答案:C
民间答案:0.5738
?贝叶斯公式
「题目解析」
已知 P(0win) = 0.65, P(1win) = 0.35, P(1主场 | 0win) = 0.3, P(1主场 | 1win) = 0.75。
则,P(1win | 1主场) = P(1主场 | 1win) * P(1 win) / P(1主场) = (0.75 * 0.35) / (0.75 * 0.35 + 0.3 * 0.65 ) = 0.5738。
此题重复 《京东2019校招数据分析工程师笔试题》第57题。
3. 考虑下面的频繁3-项集的集合:{1. 2. 3},{1. 2. 4},{1. 2. 5},{1. 3. 4}, {1. 3. 5},{2. 3. 4},{2. 3. 5},{3. 4. 5}。假定数据集中只有5个项,采用合并策略,由候选产生过程得到4-项集不包含()
A. 1. 2. 3. 4
B. 1. 2. 3. 5
C. 1. 2. 4. 5
D. 1. 3. 4. 5
正确答案:C
?频繁项子集定理
- (1) 频繁项集的子集都是频繁项集,而非频繁项的超集都是非频繁项集。
- (2)频繁项集的合并/连接定理:由k-1项集,向k项集进行合并。当两个k-1项集,拥有k-2个相同元素时,才能合并成k项集。
「题目解析」
根据定理,采用合并策略产生的4-项集的子集,应当都是3-频繁项子集。而{1. 2. 4. 5} 的 子集{2 . 4 . 5} 不是频繁3-项集。故错误。
《数据挖掘之频繁项集分析》https://www.cnblogs.com/snake-hand/p/3149640.html
4. 用户表Table中含有100万条数据,其中号码字段phone为字符型,并创建了唯一索引,且电话号码全部由数字组成,要统计号码头为158的电话号码的数量,下面写法执行速度最慢的是()
A. select count(*) from Table where phone>= ‘158’ and phone< ‘158A’
B. select count(*) from Table where phone like ‘158%’
C. select count(*) from Table where substr(phone,1,3) = ‘158’
D. 都一样快
官方答案:A
民间答案:C
「民间解析」
- A. >或者<操作符会采用索引查找;
- B. LIKE通配符在XXX%情况下会应用索引,如果在%xxx%等情况下不会应用索引;
- C. 采用函数处理的字段不能利用索引,例如substr()
来源:https://www.jobui.com/mianshiti/it/shujuku/5814/
?创建索引的注意事项:
- 1、采用函数处理的字段不能利用索引,如:
substr(hbs_bh,1,4)=’5400’,优化处理:hbs_bh like ‘5400%’
trunc(sk_rq)=trunc(sysdate), 优化处理:sk_rq>=trunc(sysdate) and sk_rq- 2、进行了显式或隐式的运算的字段不能进行索引,如:
ss_df+20>50,优化处理:ss_df>30
‘X’ || hbs_bh>’X5400021452’,优化处理:hbs_bh>’5400021542’
sk_rq+5=sysdate,优化处理:sk_rq=sysdate-5
hbs_bh=5401002554,优化处理:hbs_bh=‘5401002554’,注:此条件对hbs_bh 进行隐式的to_number转换,因为hbs_bh字段是字符型。- 3、条件内包括了多个本表的字段运算时不能进行索引,如:ys_df>cx_df,无法进行优化
qc_bh || kh_bh=’5400250000’,优化处理:qc_bh=‘5400‘ and kh_bh=’250000’来源:https://www.cnblogs.com/hqbhonker/p/3685585.html
5. 下表是用户是否使用某产品的调查结果。
USRID | 性别 | 城市 | 学历 | 收入 | 是否会办理信用卡 |
---|---|---|---|---|---|
1 | 男 | 上海 | 本科 | 低 | 是 |
2 | 女 | 北京 | 本科 | 中 | 否 |
3 | 男 | 北京 | 研究生 | 高 | 否 |
4 | 女 | 上海 | 研究生 | 中 | 是 |
5 | 女 | 上海 | 研究生 | 中 | 是 |
性别、地区、学历、收入中对用户是否会办理信用卡信息增益最大的属性是哪一个
A. 性别
B. 城市
C. 学历
D. 收入
正确答案:B
?信息增益( ID3算法 )
信息增益 = Entroy(前) - Entroy(后)
- 信息增益的理解
对于待划分的数据集D,其 entroy(前)是一定的,但是划分之后的熵 entroy(后)是不定的,entroy(后)越小说明使用此特征划分得到的子集的不确定性越小(也就是纯度越高),因此 entroy(前) - entroy(后)差异越大,说明使用当前特征划分数据集D的话,其纯度上升的更快。而我们在构建最优的决策树的时候总希望能更快速到达纯度更高的集合,因此我们总是选择使得信息增益最大的特征来划分当前数据集D。- 缺点:信息增益偏向取值较多的特征
- 原因:当特征的取值较多时,根据此特征划分更容易得到纯度更高的子集,因此划分之后的熵更低,由于划分前的熵是一定的,因此信息增益更大,因此信息增益比较 偏向取值较多的特征。
- 解决方法 : 信息增益比( C4.5算法 )
来源:https://blog.csdn.net/Tomcater321/article/details/80699044
「题目解析」
方法1
选择“城市”特征,直接得到二叉树,叶子结点全部分至最纯,故信息增益最大(不确定性减少最多)。
方法2:计算
分组统计 ?
是办理信用卡 | 否办理信用卡 | 汇总 | |
---|---|---|---|
整体 | 3 | 2 | 5 |
男 | 1 | 1 | 2 |
女 | 2 | 1 | 3 |
上海 | 3 | 0 | 3 |
北京 | 0 | 2 | 2 |
本科 | 1 | 1 | 2 |
研究生 | 2 | 1 | 3 |
高 | 0 | 1 | 1 |
中 | 2 | 1 | 3 |
低 | 1 | 0 | 1 |
以“城市”分类为例,
(1)Entroy(前) = -0.6log0.6 - 0.4log0.4
(2)Entroy (上海) = -1 log1 - 0 = 0; Entroy(北京) = 0 - 1 log1 = 0
(3)信息增益 = Entroy(前) - 3/5 * Entroy (上海) - 2/5 * Entroy(北京) = Entroy(前)
信息增益等于划分前的信息熵, 已经是最大的了,说明划分纯了。
6. 当用户使用稀疏特征训练模型时,对于离散特征缺省值,以下哪种处理效果较好
A. 删除该特征
B. 使用全新值来标记
C. 当零处理直接忽略
D. 使用平均值代替
正确答案:B
⚠️注意,题目针对“离散特征缺省值”的处理方法。
7. 以下说法不正确的是()
A. 机器学习中使用L2正则化可以得到平滑的权值
B. 在AdaBoost算法中,所有被错分的样本的权重更新比例相同
C. Boosting和Bagging都是组合多个分类器投票的方法,二者都是根据单个分类器的正确率决定其权重
D. 梯度下降有时会陷于局部极小值,但EM算法不会
正确答案:C
「题目解析」
Bagging的所有单个分类器等权重投票;
? Boosting的单个分类器按照正确率决定其权重
?Bagging算法
- 从原始样本集中使用Bootstraping 方法随机抽取n个训练样本,共进行k轮抽取,得到k个训练集(k个训练集之间相互独立,元素可以有重复)。
- 对于n个训练集,训练k个模型,(这个模型可根据具体的情况而定,可以是决策树,knn等)
- 对于分类问题:由投票表决产生的分类结果;对于回归问:由k个模型预测结果的均值作为最后预测的结果(所有模型的重要性相同)。
?Boosting算法
- 对于训练集中的每个样本建立权值wi,表示对每个样本的权重, 其关键在与对于被错误分类的样本权重会在下一轮的分类中获得更大的权重(错误分类的样本的权重增加)。
- 同时加大分类误差概率小的弱分类器的权值,使其在表决中起到更大的作用,减小分类误差率较大弱分类器的权值,使其在表决中起到较小的作用。每一次迭代都得到一个弱分类器,需要使用某种策略将其组合,最为最终模型,(adaboost给每个迭代之后的弱分类器一个权值,将其线性组合作为最终的分类器,误差小的分类器权值越大。)
?Bagging和Boosting 的主要区别
- 样本选择上:
Bagging采取Bootstraping的是随机有放回的取样,Boosting的每一轮训练的样本是固定的,改变的是每个样本的权重。- 样本权重上:
Bagging采取的是均匀取样,且每个样本的权重相同,Boosting根据错误率调整样本权重,错误率越大的样本权重会变大- 预测函数上:
Bagging所以的预测函数权值相同,Boosting中误差越小的预测函数其权值越大。- 并行计算:
Bagging 的各个预测函数可以并行生成;Boosting的各个预测函数必须按照顺序迭代生成.
?将决策树与以上框架组合成新的算法
- Bagging + 决策树 = 随机森林
- AdaBoost + 决策树 = 提升树
- gradient + 决策树 = GDBT
以上均来源:https://www.cnblogs.com/onemorepoint/p/9264782.html
《Bagging和Boosting的概念与区别》https://www.cnblogs.com/onemorepoint/p/9264782.html
8. 以下不属于优化求解方法的是
A. L-BFGS
B. SGD
C. ReLu
D. RMSprop
正确答案:C
9. 下列哪项不是SVM的优势
A. 可以和核函数结合
B. 通过调参可以往往可以得到很好的分类效果
C. 训练速度快
D. 泛化能力好
正确答案:C
「题目解析」
SVM训练速度慢不是没有原因的,主要是因为大量的非支持向量参与训练过程,从而进行了大量的二次规划计算,导致分类计算量大、分类速度慢。
- 来源:http://blog.sina.com.cn/s/blog_155fa875e0102xk7d.html
?泛化能力
在机器学习方法中,泛化能力通俗来讲就是指学习到的模型对未知数据的预测能力。在实际情况中,我们通常通过测试误差来评价学习方法的泛化能力。
10. 信用卡坏账是指信用卡发行银行无法收回或收回的可能性极小的应收款项。假设某市有A、B两个区域人口比例为3:5。据历史统计A区的坏账率为0.01%,B区的坏账率为0.015%。现有一起坏账发生在某市,那么该笔坏账发生在A区的可能性为()
A. 37.5%
B. 32.5%
C. 28.6%
D. 26.1%
正确答案:C
「题目解析」
P = (3/8) * 0.01% / (3/8 * 0.01% + 5/8 * 0.015%) = 28.6%
《京东2018秋招数据分析工程师笔试题》第32题。
11. Linux系统中,下列哪个符号可以起到追加内容到文件的作用()
A. <
B. <<
C. >
D. >>
正确答案:D
? Linux系统重定向符号
1. > 符号
- 作用: > 表示将符号左侧的内容,以「覆盖」的方式输入到右侧文件中。
- 演示:
(1)查看文件内容
admin-1@ubuntu:~$ cat file.txt
nihao
(2)使用重定向符号给文件中增加内容
admin-1@ubuntu:~$ echo "file1.txt" > file.txt
(3)再次查看文件内容,内容已被覆盖
admin-1@ubuntu:~$ cat file.txt
file1.txt
- >> 符号
- 作用:>> 表示将符号左侧的内容,以「追加」的方式输入到右侧文件的末尾行中。
- 演示
(1)查看文件内容
admin-1@ubuntu:~$ cat file.txt
file1.txt
(2)使用重定向符号给文件中增加内容
admin-1@ubuntu:~$ echo "file2.txt" >> file.txt
(3)admin-1@ubuntu:~$ cat file.txt
file1.txt
file2.txt
来源:https://www.jianshu.com/p/d46a35c1ae61
《linux常见符号》https://www.jianshu.com/p/d46a35c1ae61
12. 对于k折交叉验证, 以下对k的说法正确的是()
A. k越大,不一定越好,选择大的k会加大评估时间
B. 选择更大的k,就会有更小的bias (因为训练集更加接近总数据集)
C. 在选择k时,要最小化数据集之间的方差
D. 以上均正确
正确答案:D
?k折交叉验证
K折就是将数据集切分成K小块,验证集和测试集相互形成补集,循环交替。
来源:https://blog.csdn.net/weixin_39183369/article/details/78953653
「题目解析」
A. k越大,分成的块数越多,循环验证次数增加,评估时间增加;
B. k越大,分的越细致,训练集越大,测试集越小,训练集更接近总体数据;
C. k份数据集,应当尽量分的均衡,之间方差小。
《K折交叉验证法原理及python实现》https://blog.csdn.net/weixin_39183369/article/details/78953653
13. 关于特征选择,下列对 Ridge 回归和 Lasso 回归说法正确的是()
A. Ridge回归适用于特征选择
B. Lasso回归适用于特征选择
C. 两个都适用于特征选择
D. 两个都不适用于特征选择
正确答案:B
- 岭回归 (英文名:ridge regression, Tikhonov regularization) 是一种专用于共线性数据分析的「有偏估计」回归方法,自变量之间线性相关-correlation很高,实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信息、降低精度为代价获得回归系数更为符合实际、更可靠的回归方法,对病态数据的拟合要强于最小二乘法。
来源:https://blog.csdn.net/zd_nupt/article/details/70212709
以上截图来源:https://www.jianshu.com/p/ad74fdc15499
14. 使用逻辑回归算法对样本进行分类,得到训练样本的准确率和测试样本的准确率。现在,在数据中增加一个新的特征,其它特征保持不变。然后重新训练测试。则下列说法正确的是()
A. 训练样本准确率一定会降低
B. 训练样本准确率一定增加或保持不变
C. 测试样本准确率一定会降低
D. 测试样本准确率一定增加或保持不变
正确答案:B
「民间解析」
- 特征越多,越容易过拟合(训练数据正确率提升),但测试数据正确率往往会下降。
作者:诙銫匦迹
来源:https://www.nowcoder.com/test/question/done?tid=25328929&qid=285450#summary
15. 基于用户的协同过滤算法,适用于以下哪种场景()
A. 用户较多的场景
B. 用户个性化兴趣不太明显的场景
C. 长尾物品丰富的场景
D. 利用用户对某物品的行为做推荐解释
正确答案:D
?长尾
- 是指那些「原来不受到重视的销量小但种类多的产品或服务由于总量巨大」,累积起来的总收益超过主流产品的现象。
来源:https://baike.baidu.com/item/长尾/389156?fr=aladdin
?协同过滤
先举个生活中的场景,你想听歌却不知道听什么的时候,会向你身边与你品位类似的朋友求助,从而获得他的推荐。协同过滤(Collaborative Filtering,简称CF)就像与你品味相近的朋友,通过对大量结构化数据进行计算,找出与你相似的其他用户(user)或与你喜欢的物品(item)相似的物品,从而实现物品推荐。
- 协同过滤分为两类:
(1) 基于用户的协同过滤(User-Based CF),即基于内存的协同过滤;
(2) 基于物品的协同过滤(Item-Based CF),即基于模型的协同过滤。来源:http://www.woshipm.com/pd/934582.html
? 基于用户的协同过滤
基于用户的协同过滤又称为内存型协同过滤,需要将所有数据都保存在内存中进行计算;我们将一个用户和其他所有用户进行对比找到相似的人。
- 这种算法有两个弊端:
(1) 扩展性 随着用户年年的增加,其计算量也会增加,这种算法在只有几千个用户的情况下能够工作的很好,但达到一百万个用户时就会出现瓶颈;
(2) 稀疏性 大多数推荐系统中,物品的数量要远大于用户的数量,因此用户仅仅对一小部分物品进行评价,这就造成了数据的稀疏性。来源:https://www.jianshu.com/p/74adaf07fa14
?基于物品的协同过滤
基于物品的协同过滤又称为基于模型的协同过滤,不需要保存所有的数据,而是通过构建一个物品相似度模型来获取结果。
来源:https://www.jianshu.com/p/74adaf07fa14
《京东2018秋招数据分析工程师笔试题》第22题。
16. 基于物品的协同过滤算法,说法错误的是()
A. 适用于用户个性化需求强烈的领域
B. 解决物品的长尾问题
C. 适用于物品数明显小于用户数的场合
D. 很难提供令用户信服的推荐解释
正确答案:D
「题目解析」
参考第15题的知识点归纳。
17. 假设使用逻辑回归进行 n 多类别分类,使用 One-vs-rest 分类法。下列说法正确的是()
A. 对于n类别,需要训练n个模型
B. 对于n类别,需要训练n-1个模型
C. 对于n类别,只需要训练1个模型
D. 对于n类别,需要训练n+1个模型
正确答案:A
?one-vs-all(one-vs-rest) ? one-vs-one
- one-vs-all(one-vs-rest)
在one-vs-all策略中,假设有n个类别,那么就会「建立n个二项分类器,每个分类器针对其中一个类别和剩余类别进行分类」。进行预测时,利用这n个二项分类器进行分类,得到数据属于当前类的概率,选择其中概率最大的一个类别作为最终的预测结果。- one-vs-one
在one-vs-one策略中,同样假设有n个类别,则会针对「两两类别建立二项分类器,得到k=n(n-1)/2个分类器*」。对新数据进行分类时,依次使用这k个分类器进行分类,每次分类相当于一次投票,分类结果是哪个就相当于对哪个类投了一票。在使用全部k个分类器进行分类后,相当于进行了k次投票,选择得票最多的那个类作为最终分类结果。来源:https://www.jianshu.com/p/9332fcfbd197
来源:https://www.jianshu.com/p/9a7727475b23
18. Naive Bayes是一种特殊的Bayes分类器,特征变量是X,类别标签是C,它的一个假定是()
A. 各类别的先验概率P©是相等的
B. 以0为均值,为标准差的正态分布
C. 特征变量X的各个维度是类别条件独立随机变量
D. P(X|C)符合高斯分布
正确答案:C
(Reminder:复习Data Ming 课件,补充笔记~)
19. 分析顾客消费行业,以便有针对性的向其推荐感兴趣的服务,属于( )问题。
A. 关联规则挖掘
B. 分类与回归
C. 聚类分析
D. 时序预测
正确答案:A
20. 以下哪项不是防止过拟合的方法()
A. 正则化
B. 增大样本量
C. early stopping
D. 增加稀疏特征
正确答案:D
?early stopping原理
- Early stopping便是一种迭代次数截断的方法来防止过拟合的方法,即在模型对训练数据集迭代收敛之前停止迭代来防止过拟合。
- Early stopping方法的具体做法
在每一个Epoch结束时(一个Epoch集为对所有的训练数据的一轮遍历)计算validation data的accuracy,当accuracy不再提高时,就停止训练。- 这种做法很符合直观感受,因为accurary都不再提高了,在继续训练也是无益的,只会提高训练的时间。那么该做法的一个重点便是怎样才认为validation accurary不再提高了呢?
并不是说validation accuracy一降下来便认为不再提高了,因为可能经过这个Epoch后,accuracy降低了,但是随后的Epoch又让accuracy又上去了,所以不能根据一两次的连续降低就判断不再提高。一般的做法是,在训练的过程中,记录到目前为止最好的validation accuracy,当连续10次Epoch(或者更多次)没达到最佳accuracy时,则可以认为accuracy不再提高了。此时便可以停止迭代了(Early Stopping)。这种策略也称为“No-improvement-in-n”,n即Epoch的次数,可以根据实际情况取,如10、20、30……作者:一只鸟的天空
来源:https://blog.csdn.net/heyongluoyao8/article/details/49429629
? 防止过拟合的方法
(详细说明,参考链接博文)
《机器学习中防止过拟合的处理方法》https://blog.csdn.net/heyongluoyao8/article/details/49429629
21. 以下哪个不属于spark的transform操作()
A. collect
B. filter
C. map
D. flatMap
正确答案:A
?Spark
- hadoop提供的接口核心是map和reduce函数,spark是mapreduce的扩展,提供两类操作(Transformation、Action),而不是两个,使得使用更方便,开发时的代码会被spark的这种多样的API减少数十倍。——来自网络
「题目解析」
Collect 是 Action操作;
filter,map和flatMap 是transform操作。
《Spark的Transform与Action操作(important)》https://blog.csdn.net/huozi07/article/details/50133259
22. 以下哪些方法不可以直接来对文本分类()
A. K-means
B. 决策树
C. 支持向量机
D. KNN
正确答案:A
「题目解析」
K-means是聚类的算法。
23. 以下哪些不是影响聚类算法效果的原因()
A. 特征选取
B. 模式相似性测度
C. 分类准则
D. 已知类别的样本质量
正确答案:D
「民间解析」
- 分析的算法可以分为划分法(Partitioning Methods)、层次法(Hierarchical Me thods)、基于密度的方法(Density-Based Methods)、基于网格的方法(Grid-Based M ethods)、基于模型的方法(Model-Based Methods)、谱聚类(Spectral Clustering) 等,不用的方法对聚类效果存在差异(C正确);
- 特征选取的差异会影响聚类效果(A正确);
- 聚类的目标是使同一类对象的相似度尽可能地大,因此不同的相似度测度方法对聚类结 果有着重要影响(B正确);
- 由于聚类算法是无监督方法,不存在带类别标签的样本,因此, D选项不是聚类算法的输入数据(D错误)。
作者:平行线上的交点
来源:https://www.nowcoder.com/questionTerminal/aa46753ae3084713990b392283057147?source=relative
24. 在Logistic Regression 中,如果同时加入L1和L2范数,会产生什么效果()
A. 可以做特征选择,并在一定程度上防止过拟合
B. 能解决维度灾难问题
C. 能加快计算速度
D. 可以获得更准确的结果
正确答案:A
「题目解析」
L1-norm可以产生稀疏模型,可以用于特征选择;
L2-norm可以防止过拟合,一定程度上L1也可以。
25. 关于PreparedStatement与Statement描述错误的是()
A. 一般而言,PreparedStatement比Statement执行效率更高
B. PreparedStatement会预编译SQL语句
C. Statement每次都会解析/编译SQL,确立并优化数据获取路径
D. Statement执行扫描的结果集比PreparedStatement大
正确答案:D
?PreparedStatement ? Statement
「概念」
以Oracle为例吧
- Statement为一条Sql语句生成执行计划,如果要执行两条sql语句
select colume from table where colume=1; select colume from table where colume=2;
会生成两个执行计划,
一千个查询就生成一千个执行计划!- PreparedStatement用于使用绑定变量重用执行计划
select colume from table where colume=:x;
通过set不同数据只需要生成一次执行计划,可以重用 。「比较」
- 1.PreparedStatement是预编译的,对于批量处理可以大大提高效率.也叫JDBC存储过程;
- 2.**使用 Statement 对象。在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。**PreparedStatement对象的开销比Statement大,对于一次性操作并不会带来额外的好处。
- 3.statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译得,preparedstatement支持批处理;
- 4.
String updateString = "UPDATE COFFEES SET SALES = 75 " + "WHERECOF_NAME LIKE ′Colombian′"; stmt.executeUpdate(updateString);
?
PreparedStatement updateSales = con.prepareStatement("UPDATE COFFEES SETSALES = ? WHERE COF_NAME LIKE ? "); updateSales.setInt(1, 75); updateSales.setString(2, "Colombian"); updateSales.executeUpdate();
片断2和片断1的区别在于,后者使用了PreparedStatement对象,而前者是普通的Statement对象。PreparedStatement对象不仅包含了SQL语句,而且大多数情况下这个语句已经被预编译过,因而当其执行时,只需DBMS运行SQL语句,而不必先编译。当你需要执行Statement对象多次的时候,PreparedStatement对象将会大大降低运行时间,当然也加快了访问数据库的速度。- 5.执行许多SQL语句的JDBC程序产生大量的Statement和PreparedStatement对象。通常认为PreparedStatement对象比Statement对象更有效,特别是如果带有不同参数的同一SQL语句被多次执行的时候。PreparedStatement对象允许数据库预编译SQL语句,这样在随后的运行中可以节省时间并增加代码的可读性。
来源:https://www.cnblogs.com/huangjinyong/p/9375952.html
《JDBC中的Statement和PreparedStatement的区别》https://www.cnblogs.com/huangjinyong/p/9375952.html
26. 在二分类问题中,当测试集的正负例数量不均衡时,以下评价方案哪个是相对不合理的(假设 precision=TP/(TP+FP),recall=TP/(TP+FN))?
A. Accuracy:(TP+TN)/all
B. F-value:2recallprecision/(recall+precision)
C. G-mean:sqrt(precision*recall)
D. AUC:曲线下面积
正确答案:A
27. 下面对k-means聚类描述不正确的是()
A. 对噪声和离群点敏感
B. 在指定K的前提下,每次结果都是相同的
C. 算法复杂度为O(nkt)
D. 不适合发现非凸形状的聚类
正确答案:B
「民间解析」
- k-means会被噪点平均化产生偏离; 指定k仅仅是指定簇中心个数,初始点不同最终结果不尽相同; 非凸的数据适合DBSCAN、层次聚类。
作者:诙銫匦迹
来源:https://www.nowcoder.com/test/question/done?tid=25328929&qid=285462#summary
28. 在基本K均值算法里,当邻近度函数采用( )的时候. 合适的质心是簇中各点的中位数。
A. 曼哈顿距离
B. 平方欧几里德距离
C. 余弦距离
D. Bregman散度
正确答案:A
「民间解析」
- 邻近度函数:曼哈顿距离。质心:中位数。目标函数:最小化对象到其簇质心的距离和;
- 邻近度函数:平方欧几里德距离。质心:均值。目标函数:最小化对象到其簇质心的距离的平方和;
- 邻近度函数:余弦。质心:均值。最大化对象与其质心的余弦相似度和;
- 邻近度函数:Bregman 散度。质心:均值。目标函数:最小化对象到其簇质心的Bregman散度和
来源 :https://blog.csdn.net/qq365197735/article/details/75496274
29. 以下选项,属于进程和线程区别的是()
A. 操作系统只能调度进程,不能调度线程
B. 线程可以共享内存地址空间,进程不能
C. 线程可以共享内存数据,进程不能
D. 进程可以用IPC进行通信,线程不行
官方答案:D
我觉得B也对?(求解析,欢迎评论~)
?进程和线程的区别
- 1.地址空间和其他资源(如打开文件):进程间相互独立,同一进程的各线程间共享。某进程内的线程在其他进程内不可见。
- 2.通信:进程间通信IPC(管道,信号量,共享内存,消息队列),线程间可以直接独写进程数据段(如全局变量)来进程通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。
- 3.调度和切换:线程上下文切换比进程上下文切换快得多。
- 4.在多线程OS中,进程不是一个可执行的实体。
来源:https://www.cnblogs.com/aaronthon/p/9824396.html
《京东2018秋招数据分析工程师笔试题
》第4题、第5题。
《什么是进程?什么是线程?进程和线程之间的区别是什么?》https://www.cnblogs.com/aaronthon/p/9824396.html
30.关于用户画像的说法错误的是()
A. 用户画像的标签分为定量标签和定性标签
B. 用户画像的应用场景有:产品设计,营销推荐,风险控制等
C. 用户标签必须描述客观的事实
D. 用户画像本质上是一套完整的标签体系
正确答案:C
31. 计算下列事务数据集的所有频繁项集(最小支持度2)
TID | List of item |
---|---|
T1 | I1,I2,I5 |
T2 | I2,I4 |
T3 | I2,I3 |
T4 | I1,I2,i4 |
T5 | I1,I3 |
T6 | I2,I3 |
T7 | I1,I3 |
T8 | I1,I2,I3,I5 |
T9 | I1,I2,I3 |
「参考答案」
- F1:{I1},{I2},{I3},{I4},{I5} (2分)
- F2:{I1,I2},{I1,I3},{I1,I5},{I2,I3},{I2,I4},{I2,I5} (4分)
- F3:{I1,I2,I3},{I1,I2,I5} (2分)
32. 数据库中现有一张信用卡交易流水表T,共有三个字段:用户ID(usr_id)、交易城市(trx_cty)、交易金额(trx_amt)
±--------±-----------±-----------+
| usr_id | trx_cty | trx_amt |
±--------±-----------±-----------+
| 100001 | beijing | 120.00 |
| 100001 | shanghai | 1500.00 |
| 100002 | shanghai | 122.00 |
| 100001 | shenzhen | 30.00 |
| 100001 | guangzhou | 1600.50 |
| 100001 | shenzhen | 1500.00 |
| 100003 | shanghai | 7.80 |
| 100003 | shenzhen | 550.20 |
| 100001 | beijing | 8923.70 |
±--------±-----------±-----------+
现在需要利用sql语句统计:
(1)统计每个用户最高消费额
(2)统计每个用户最高消费额所对应的消费城市
(3)由于建模的需要,现在需要对数据进行预处理。对每个用户ID,需要统计每个用户分别是否在北京、上海、广州、深圳消费过,有过该城市消费记录为1,否则为0。输出表如下:
±--------±--------±--------±---------±---------+
| usr_id | beijing | shanghai| guangzhou| shenzhen |
±--------±--------±--------±---------±---------+
| 100001 | 1 | 1 | 1 | 1 |
| 100002 | 0 | 1 | 0 | 0 |
| 100003 | 0 | 1 | 0 | 1 |
±--------±--------±--------±---------±---------+
「参考答案」
(1)
select usr_id,max(trx_amt) from T group by usr_id; (2分)
(2)
select usr_id,trx_cty
from(select *,row_number() over (partition by usr_id order by trx_amt desc) xid from T)a
where xid=1; (4分)
(3)
select usr_id,
max(case when trx_cty='beijing' then 1 else 0 end) as beijing,
max(case when trx_cty='shanghai' then 1 else 0 end) as shanghai,
max(case when trx_cty='guangzhou' then 1 else 0 end) as guangzhou,
max(case when trx_cty='shenzhen' then 1 else 0 end) as shenzhen
from T
group by usr_id; (4分)
33. 掌上生活是招商银行信用卡中心推出的一款消费金融APP,其中有针对持卡用户提供不同种类的餐饮优惠券。现在需要预测用户未来一周内是否会购买掌上生活APP上的优惠券(包括饭票、影票等),请问:
(1)可以使用哪些评价指标?可以构造的特征有哪些 (至少写出五个)?
(2)可供使用的模型有Logistic模型和xgboost模型,请简述这两个模型的原理,并比较这两个模型的特点。
(3)训练模型后在线下的离线评价效果很好,但上线使用后发现效果极差,请分析可能的原因及解决方案。
「参考答案」
- (1)AUC、accuracy、precision、recall等二分类常用指标;
个人属性、信用卡消费数据、APP操作行为日志等等; (评价指标和特征各1分)- (2) 模型原理各2分,模型比较2分;共6分
- (3)时间因素:上线一般会有时间延迟,训练模型中可能加入了与训练样本时间相关的特征变量,需要在线下训练模型中找到并剔除这样的变量; (分析原因2分,解决方案2分)
《Introduction to Boosted Trees》https://xgboost.readthedocs.io/en/latest/tutorials/model.html
《xgboost的原理没你想像的那么难 - 草稿》https://www.jianshu.com/p/7467e616f227
34. 简述曼哈顿距离、欧式距离、明式距离、余弦距离、皮尔森相关系数的原理及定义,并在此基础上说明不同距离适合的应用场景。
《机器学习——几种距离度量方法比较》https://my.oschina.net/hunglish/blog/787596