机器学习算法GBDT的面试总结

在这里插入图片描述
在这里插入图片描述
def findLossAndSplit(x,y):
# 我们用 x 来表示训练数据
# 我们用 y 来表示训练数据的label
# x[i]表示训练数据的第i个特征
# x_i 表示第i个训练样本

# minLoss 表示最小的损失
minLoss = Integet.max_value
# feature 表示是训练的数据第几纬度的特征
feature = 0
# split 表示切分点的个数
split = 0# M 表示 样本x的特征个数
for j in range(0,M):# 该维特征下,特征值的每个切分点,这里具体的切分方式可以自己定义for c in range(0,x[j]):L = 0# 第一类R1 = {x|x[j] <= c}# 第二类R2 = {x|x[j] > c}# 属于第一类样本的y值的平均值y1 = ave{y|x 属于 R1}# 属于第二类样本的y值的平均值y2 = ave{y| x 属于 R2}# 遍历所有的样本,找到 loss funtion 的值for x_1 in all xif x_1 属于 R1: L += (y_1 - y1)^2 else:L += (y_1 - y2)^2if L < minLoss:minLoss = Lfeature  = isplit = c
return minLoss,feature ,split

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

定义训练数据

train_data = [[5.1,3.5,1.4,0.2],[4.9,3.0,1.4,0.2],[7.0,3.2,4.7,1.4],[6.4,3.2,4.5,1.5],[6.3,3.3,6.0,2.5],[5.8,2.7,5.1,1.9]]

定义label

label_data = [[1,0,0],[1,0,0],[0,1,0],[0,1,0],[0,0,1],[0,0,1]]

index 表示的第几类

def findBestLossAndSplit(train_data,label_data,index):
sample_numbers = len(label_data)
feature_numbers = len(train_data[0])
current_label = []

    # define the minLossminLoss = 10000000# feature represents the dimensions of the featurefeature = 0# split represents the detail split valuesplit = 0# get current labelfor label_index in range(0,len(label_data)):current_label.append(label_data[label_index][index])# trans all featuresfor feature_index in range(0,feature_numbers):## current feature valuecurrent_value = []for sample_index in range(0,sample_numbers):current_value.append(train_data[sample_index][feature_index])L = 0## different split valueprint current_valuefor index in range(0,len(current_value)):R1 = []R2 = []y1 = 0y2 = 0for index_1 in range(0,len(current_value)):if current_value[index_1] < current_value[index]:R1.append(index_1)else:R2.append(index_1)## calculate the samples for first classsum_y = 0for index_R1 in R1:sum_y += current_label[index_R1]if len(R1) != 0:y1 = float(sum_y) / float(len(R1))else:y1 = 0## calculate the samples for second classsum_y = 0for index_R2 in R2:sum_y += current_label[index_R2]if len(R2) != 0:y2 = float(sum_y) / float(len(R2))else:y2 = 0## trans all samples to find minium loss and best splitfor index_2 in range(0,len(current_value)):if index_2 in R1:L += float((current_label[index_2]-y1))*float((current_label[index_2]-y1))else:L += float((current_label[index_2]-y2))*float((current_label[index_2]-y2))if L < minLoss:feature = feature_indexsplit = current_value[index]minLoss = Lprint "minLoss"print minLossprint "split"print splitprint "feature"print featurereturn minLoss,split,feature

findBestLossAndSplit(train_data,label_data,0)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/481153.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

线性代数应该这样讲(四)-奇异值分解与主成分分析

在《线性代数这样讲&#xff08;二&#xff09;》&#xff08;以下简称「二」&#xff09;中&#xff0c;小夕详细讲解了特征值与特征向量的意义&#xff0c;并且简单描述了一下矩阵的特征值分解的意义和原理。本文便基于对这几个重要概念的理解来进一步讲解SVD分解。回顾一下&…

BPEL4WS基础知识

一、为什么选择BPEL4WS 可以使用行业范围内的规范来广告、发现和调用Web服务 开发人员和用户可以通过组合和订购可用的基本服务来解决复杂问题 服务组合允许服务重用并加速复杂的服务开发 提供一种表示法&#xff0c;用于将Web服务的交互描述为业务流程 编写使用Web服务的程…

快速理解bootstrap,bagging,boosting-三个概念

1 booststraping&#xff1a;意思是依靠你自己的资源&#xff0c;称为自助法&#xff0c;它是一种有放回的抽样方法&#xff0c;它是非参数统计中一种重要的估计统计量方差进而进行区间估计的统计方法。 其核心思想和基本步骤如下&#xff1a; &#xff08;1&#xff09;采用…

不要再纠结卷积的公式啦!0公式深度解析全连接前馈网络与卷积神经网络!

文章转载自订阅号「夕小瑶的卖萌屋」中的文章《不要再纠结卷积的公式啦&#xff01;0公式深度解析全连接前馈网络与卷积神经网络》。 Hello~你们的小夕终于吐泡泡了&#xff5e;前几天小夕又加班赶project啦&#xff0c;拖了好几天&#xff0c;都快患上拖稿焦虑症了_(:з」∠)…

【Python自然语言处理】中文分词技术——规则分词

中文分词方法 本文参考自书籍《Python自然语言处理实战&#xff1a;核心技术与算法》 用做个人的学习笔记和分享 1. 规则分词 规则分词是一种机械分词方法&#xff0c;主要通过维护词典&#xff0c;在切分语句时将语句的每个字符串和词表中的词逐一匹配找到则切分&#xff0c;…

不要再纠结卷积的公式啦!0公式深度解析全连接前馈网络与卷积神经网络

Hello~你们的小夕终于吐泡泡了&#xff5e;前几天小夕又加班赶project啦&#xff0c;拖了好几天&#xff0c;都快患上拖稿焦虑症了_(:з」∠)_关于卷积神经网&#xff0c;小夕就不从卷积讲啦。以前不止一个粉丝问我卷积神经网络中卷积的意义&#xff0c;甚至在知乎上被邀请回答…

0-1背包问题的动态规划算法-秒懂

https://zhuanlan.zhihu.com/p/30959069

研究生常用的几种风险评估方法-专家调查法、蒙特卡洛模拟法、计划评审技术、敏感性分析法、决策树法、影响图法、模糊综合评价方法

其实风险评估就是在充分掌握资料的基础之上&#xff0c;采用合适的方法对已识别风险进行系统分析和研究&#xff0c;评估风险发生的可能性&#xff08;概率&#xff09;、造成损失的范围和严重程度&#xff08;强度&#xff09;&#xff0c;为接下来选择适当的风险处理方法提供…

从前馈到反馈:解析循环神经网络(RNN)及其tricks

好像已经有两周没有更新啦。最后这几天都不敢打开订阅号后台了&#xff0c;怕一打开发现掉了几百个粉丝的话就难过死了T_T。然而小夕发现你们并没有离开&#xff0c;感动的差点哭出来&#xff0c;都感觉再不认真写一篇文章就太对不起大家的等待啦。而这两周&#xff0c;经历的事…

【机器学习】逻辑回归模型

应用场景 推荐系统&#xff1a;分析购买某类商品的潜在因素&#xff0c;判断该类商品的购买概率。挑选购买过的人群A和未购买的人群B&#xff0c;获取两组人群不同的用户画像和行为特征数据。建立用户行为模型、商品推荐模型实现产品的自动推荐。 公式 对于二分类问题&#…

多因子风险建模-协方差矩阵、投资组合风险

一、为什么要了解投资风险 在探讨投资风险前&#xff0c;我们不妨思考一个问题&#xff1a;好的投资&#xff0c;取决于哪些因素&#xff1f; 其实&#xff0c;卓越的投资回报&#xff0c;主要来源于四个因素&#xff1a; 收益预测&#xff1a;能形成合力的收益预期&#xff…

啊啊忍不住了,更!新!!!

你萌都还在&#xff0c;好开心 o(≧v≦)o在2017年9月21日这个特殊的日子&#xff0c;小夕在长达30天的沉默后&#xff0c;终于冒泡了&#xff01;有木有很激动&#xff0c;很期待&#xff1f;&#xff01;&#xff08;小夕&#xff0c;你不说我都忘了还有这订阅号了&#xff09…

【数据挖掘】数据挖掘和数据分析基础

参考文献&#xff1a;《Python数据分析与挖掘实战》张良均等 数据挖掘建模过程 定义挖掘目标&#xff1a;理解任务&#xff0c;确定指标数据采样&#xff1a;注意数据的完整性和有效性数据探索&#xff1a;异常值分析、缺失值分析、相关性分析、周期性分析数据预处理&#xff…

Barra 结构化风险模型实现(1)——沪深300指数的风格因子暴露度分析

米筐科技&#xff08;RiceQuant&#xff09;策略研究报告&#xff1a;Barra 结构化风险模型实现(1)——沪深300指数的风格因子暴露度分析 江嘉键1 年前1 概述Barra 结构化风险模型是全球知名的投资组合表现和风险分析工具。最近一段时间&#xff0c;我们米筐科技量化策略研究团…

深度学习资料挑的眼花啦?小夕帮你做选择!

小夕还记得几年前刚入坑的时候&#xff0c;老师给的入门资料就是一堆论文&#xff01;害的小夕差点放弃。。。如今深度学习应用的开发成本越来越低&#xff0c;学习资料越来越多&#xff0c;于是对初学者来说进入了另一个相反的困境——资料过多&#xff0c;让人眼花缭乱&#…

干货 | 深度学习的可解释性研究(一):让模型「说人话」

在这篇文章中&#xff1a;可解释性是什么&#xff1f;我们为什么需要可解释性&#xff1f;有哪些可解释性方法&#xff1f;在建模之前的可解释性方法建立本身具备可解释性的模型在建模之后使用可解释性性方法作出解释关于 BIGSCity参考文献不以人类可以理解的方式给出的解释都叫…

深度解析LSTM神经网络的设计原理

引人入胜的开篇&#xff1a;想要搞清楚LSTM中的每个公式的每个细节为什么是这样子设计吗&#xff1f;想知道simple RNN是如何一步步的走向了LSTM吗&#xff1f;觉得LSTM的工作机制看不透&#xff1f;恭喜你打开了正确的文章&#xff01; 前方核弹级高能预警&#xff01;本文信息…

【数据挖掘】挖掘建模-回归分析(1)

参考文献&#xff1a;《Python数据分析与挖掘实战》 分类与预测 一、实现过程 分类&#xff1a;构造分类模型&#xff0c;输入样本的属性值&#xff0c;输出对应的类别&#xff0c;将每个样本映射到预先定义好的类别。属于有监督的学习。预测&#xff1a;建立两种或两种以上变…

Step-by-step to LSTM: 解析LSTM神经网络设计原理

Ps&#xff1a;喂喂喂&#xff0c;你萌不要光收藏不点赞呀_(:з」∠)_emmmm... 搞清楚LSTM中的每个公式的每个细节为什么是这样子设计吗&#xff1f;想知道simple RNN是如何一步步的走向了LSTM吗&#xff1f;觉得LSTM的工作机制看不透&#xff1f;恭喜你打开了正确的文章&#…