自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 SQL TASK05 作业

练习题一、请说出针对本章中使用的 product(商品)表执行如下 SELECT 语句所能得到的结果。SELECT product_id ,product_name ,sale_price ,MAX(sale_price) OVER (ORDER BY product_id) AS Current_max_price FROM product;答:按照product_id排序后,选择目前为止出现的最大sale_price。二、继续使用product

2021-11-25 23:09:03 740

原创 基础查询与排序

本文学习自DATAWHALE SQL教程SELECT & WHERESELECT:从表中选出必要数据query:匹配查询/查询,通过SELECT选出必要数据的过程SELECT "栏位名" FROM "表格名";WHERE:选择性地提取必要数据SELECT "栏位名" FROM "表格名" WHERE "条件";例如:SELECT sale_priceFROM productWHERE product_name='裤子';一些SQL规则一、星号(*)代表全部列SEL

2021-11-18 23:40:55 835

原创 SQL-初识数据库

初识数据库数据库:Database,DB数据库管理系统:Database Management System,DBMS数据库的种类:层次数据库:Hierarchical Database,HDB关系数据库:Relational Database,RDB,以行和列组成的二维表管理数据面向对象数据库:Relational Database,RDBXML数据库:XML Database,XMLDB健值存储系统:Key-Value Store,KVSRDBMS的常见系统结构示意图:注意:S

2021-11-16 23:26:34 704

原创 集成学习(中)- 投票法

集成学习(中)- 投票法内容由Datawhale学习材料整理而成投票法投票法是集成学习中的常用技巧。本质是通过多个模型的集成降低方差,从而提高模型的鲁棒性。对于回归问题,投票法最终的预测结果是多个回归模型预测结果的平均值。对于分类问题,又分为硬投票法和软投票法:硬投票法:多个模型预测结果中出现次数最多的类别。软投票法:对各类预测结果的概率进行求和,最终选取概率之和最大的类标签。相对于硬投票,软投票法考虑到了预测概率这一额外的信息,因此可以得出比硬投票法更加准确的预测结果。投票法要注

2021-04-14 23:04:06 953

原创 集成学习(上) - Task 6 - 模型评估与超参数调优

来自机器学习模型评估与超参数调优详解k折交叉验证来自k折交叉验证K折交叉验证一般用于模型调优,找到使得模型泛化性能最优的超参值。找到后,在全部训练集上重新训练模型,并使用独立测试集对模型性能做出最终评价。K折交叉验证使用了无重复抽样技术的好处:每次迭代过程中每个样本点只有一次被划入训练集或测试集的机会。如果训练数据集相对较小,则增大k值。增大k值,在每次迭代过程中将会有更多的数据用于模型训练,能够得到最小偏差,同时算法时间延长。且训练块间高度相似,导致评价结果方差较高。如果训练集相对较大,

2021-03-29 23:45:28 326

原创 集成学习 -Task 5

文章目录分类模型性能度量 - 混淆矩阵/F1/AUC与ROC性能度量混淆矩阵准确率精准率/查准率召回率/查全率定义查准率和查全率有什么用?精准率(查准率)和召回率(查全率)的关系 - F1分数如何理解P-R(查准率-查全率)这条曲线?F1分数灵敏度,特异度,真正率,假正率ROC(接受者操作特征曲线)ROC曲线的阈值问题如何判断ROC曲线的好坏?ROC曲线无视样本不平衡AUC(曲线下的面积)Logistic 回归Logistic 回归简介Logistic 回归的数学表达如何求解最优的 θ\thetaθLogi

2021-03-28 01:31:06 235

原创 深度推荐模型 - DIN

DIN文章目录DIN提出背景DIN模型的数据集和特征表示基线模型Embedding layerPooling layer and Concat layer损失函数base模型存在的问题 & 改进思路DIN模型架构DIN实现上的细节提出背景Deep Interest Network(DIN)是阿里巴巴在2018年提出的,该模型更加具有业务气息。应用场景是阿里巴巴的电商广告推荐业务。DIN这个模型应用了注意力机制来对用户的兴趣动态模拟。这个应用场景的最重要的特点是:有大量的用户历史行为信息。之前

2021-03-27 05:33:52 337

原创 集成学习(上) - Task 4 - 超参数调优

超参数调优要区别于参数调优使用最小二乘法或者梯度下降法等最优化算法优化出来的数我们称为参数,无法使用最小二乘法或者梯度下降法等最优化算法优化出来的数是超参数。参数是模型内部的配置变量,其值可以根据数据进行估计。进行预测时需要参数。参数定义了可使用的模型。参数是从数据估计或获悉的。参数通常不由编程者手动设置。参数通常被保存为学习模型的一部分。参数是机器学习算法的关键,它们通常由过去的训练数据中总结得出。模型超参数是模型外部的配置,其值无法从数据中估计。超参数通常用于帮助估计模型参数。

2021-03-23 20:05:04 280

原创 深度推荐模型 -NFM

NFM文章目录NFM提出背景 & 与其他模型的关系FM回顾NFM公式NFM网络总体结构网络各层的详细解释Input层和Embedding层Bi-Interaction Pooling layer隐藏层预测层小结参考推荐系统遇上深度学习(七)–NFM模型理论和实践提出背景 & 与其他模型的关系NFM这个模型是在FM的基础上提出的,是为了改进FM模型只能表达特征之间两两组合之间的关系,无法建模两个特征之间深层次的关系或者说多个特征之间的交互关系,同时为了建模更高阶的特征而提出的。NFM是

2021-03-22 15:59:06 1011

原创 集成学习(上) - Talk 3

文章目录测试误差及其优化训练误差修正交叉验证特征选择压缩估计(正则化)岭回归(L2正则化的例子)Lasso回归(L1正则化的例子)降维PCA(主成分分析)方差与偏差方差:偏差:误差方差与偏差的关系模型训练为什么要引入偏差和方差?请理论论证。推导方法 - 一个很清晰的推导过程泛化误差定义方差定义偏差定义噪声定义推导过程测试误差及其优化一般而言,我们并不关心模型在训练集上的训练均方误差,我们关心的是模型面对未知的样本集,即测试集上的测试误差,我们的目标是使得我们建立的模型在测试集上的测试误差最小。那我们如何

2021-03-21 23:29:55 369

原创 深度推荐模型 - DeepFM

DeepFM文章目录DeepFM之前的模型的缺点和局限线性模型的局限性多项式模型的问题DNN的局限性FM(因子分解机)FFMFNN & PNNWide & DeepDeepFM 的结构和原理FM LayerDeepDeep FM模型的优点思考题如果对于FM采用随机梯度下降SGD训练模型参数,请写出模型各个参数的梯度和FM参数训练的复杂度。对于下图所示,根据你的理解Sparse Feature中的不同颜色节点分别表示什么意思SVM与FM的区别参考:论文原文FM、FFM、DeepFM学习

2021-03-20 14:23:25 464

原创 集成学习(上) - Task 2

集成学习(上) - Task 2文章目录集成学习(上) - Task 2完成一个完整的机器学习项目有哪些步骤?选择度量模型性能的指标:线性回归模型最小二乘估计概率视角的理解代码线性模型的推广多项式回归广义可加模型(GAM)回归树完成一个完整的机器学习项目有哪些步骤?原文来自一个完整机器学习项目流程总结理解实际问题,抽象为机器学习能处理的数学问题理解实际业务场景问题是机器学习的第一步。深入理解要处理的问题,能避免走很多弯路,节省时间。理解问题,包括明确可以获得什么样的数据,机器学习的目标是一个分

2021-03-19 02:10:40 220

原创 深度推荐模型 -Day 2

Wide & Deep Model文章目录Wide & Deep Model为什么要提出 Wide & Deep 模型?模型结构及原理Wide部分交互特征优化器:带L1L_1L1​正则的FTRL算法Deep部分Wide 与 Deep 结合思考题为什么要提出 Wide & Deep 模型?传统的“特征海洋”战术实际上是一个很“宽”的模型,利用手工构造的交叉组合特征来使线性模型具有“记忆性”,使模型记住共现频率较高的特征组合,往往也能达到一个不错的baseline,且可解释

2021-03-18 23:43:20 152

原创 深度推荐模型 -Day1

DeepCrossingEmbedding Layer通常用于模型第一层,其目的是将所有索引标号(正整数)映射到致密的低维向量中,比如文本集[[4],[32],[67]]被映射为[[0.3,0.9,0.2],[-0.2,0.1,0,8],[0.1,0.3,0.9]]。本质上是用连续空间替代(准)离散空间,以增加空间利用率,减少不必要的参数。优点:来自深度学习中Embedding层有什么用?使用One-hot 方法编码的向量会很高维也很稀疏。假设我们在做自然语言处理(NLP)中遇到了一个包含200

2021-03-16 23:57:43 184

原创 集成学习(上) - Day 1

机器学习的部分我比较熟悉了,我把本节的学习重点放在sklearn工具包上导论机器学习:用数学模型理解数据,发现数据中的规律,用作数据分析和预测。机器学习任务分类根据是否有因变量:有监督学习无监督学习根据因变量是否连续:回归分类常用工具包:scikit-learn(sklearn)回归以sklearn内置数据集Boston房价数据集为例。sklearn中所有内置数据集都封装在datasets对象内。data: 特征X的矩阵(ndarray)target: 因变量的

2021-03-15 20:07:50 110

原创 一枚菜鸟的leetcode刷题笔记 - Day17

344 - 反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]class Solution: def reverseString(self, s: List[str]) -&

2021-01-29 09:19:00 174

原创 一枚菜鸟的leetcode刷题笔记 - Day16

237 - 删除链表中的节点请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。class Solution: def deleteNode(self, node): """ :type node: ListNode :rtype: void Do not return anything, modify node in-place instead. """ node.v

2021-01-28 18:07:48 224

原创 一枚菜鸟的leetcode刷题笔记 - Day15

235 - 二叉搜索树的最近公共祖先给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”本题的解法完全参考了 利用二叉搜索树的性质,一次递归二叉搜索树具有如下性质:若任意结点的左子树不空,则左子树上所有结点的值均不大于它的根结点的值。若任意结点的右子树不空,则右子树上所有结点的值均不小于它的根结点的

2021-01-27 21:58:35 156

原创 一枚菜鸟的leetcode刷题笔记 - Day14

215 - 数组中的第K个最大元素在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。class Solution: def findKthLargest(self, nums: List[int], k: int) -> int: nums.sort() #从小到大排列 return nums[-k]217 - 存在重复元素给定一个整数数组,判断是否存在重复元素。如果存在一值

2021-01-26 22:20:18 177

原创 一枚菜鸟的leetcode刷题笔记 - Day13

面试题 - 链表相交给定两个(单向)链表,判定它们是否相交并返回交点。请注意相交的定义基于节点的引用,而不是基于节点的值。换句话说,如果一个链表的第k个节点与另一个链表的第j个节点是同一节点(引用完全相同),则这两个链表相交。class Solution: def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> ListNode: listA = [] while headA is

2021-01-25 23:08:53 152

原创 一枚菜鸟的leetcode刷题笔记 - Day12

146 - LRU 缓存机制运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1。void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容量达到上限时,它

2021-01-23 23:05:41 259 2

原创 一枚菜鸟的leetcode刷题笔记 - Day11

136 - 只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?用数组/集合class Solution: def singleNumber(self, nums: List[int]) -> int: tmp = [] for n in nums: if n in tmp:

2021-01-22 22:38:57 215 1

原创 一枚菜鸟的leetcode刷题笔记 - Day10

124 - 二叉树中的最大路径和路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。该路径 至少包含一个 节点,且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树的根节点 root ,返回其 最大路径和。示例一:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZkqxOCI3-1611197311847)(media/16081082147898/exx1.jpg)]输入:root = [1,2,3]输出:6解释:最优路径

2021-01-21 10:50:01 253

原创 一枚菜鸟的leetcode刷题笔记 - Day9

88 - 合并两个有序数组给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小等于 m + n)来保存 nums2 中的元素。示例 1:输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]class Solution:

2021-01-20 21:45:40 273 2

原创 一枚菜鸟的leetcode刷题笔记 - Day8

文章目录62 - 不同路径解法一:递归动态规划70 - 爬楼梯78 - 子集解法一:定义递归函数找到当前index开始的数组的所有子集解法二:对数组的每个元素考虑选或不选62 - 不同路径一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?解法一:递归class Solution: def uniquePaths(self,

2021-01-19 17:33:46 252 1

原创 一枚菜鸟的leetcode刷题笔记 - Day7

54 - 螺旋矩阵给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]class Solution: def spiralOrder(self, matrix: List[List[int]]) -> List[int]: m, n = len(matrix), len(mat

2021-01-18 21:31:43 222 1

原创 一枚菜鸟的leetcode刷题笔记 - Day6

415 - 字符串相加给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。提示:num1 和num2 的长度都小于 5100num1 和num2 都只包含数字 0-9num1 和num2 都不包含任何前导零你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式class Solution: def str2num(self, s): num = 0 for i in range(len(s)):

2021-01-17 21:12:37 212

原创 一枚菜鸟的leetcode刷题笔记 - Day5

23 - 合并K个升序链表给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。class Solution: def merge2Lists(self, l1, l2): ''' l1 and l2 are two linked lists ''' head = ListNode() rehead = head while l1 and l2:

2021-01-16 16:10:17 179

原创 一枚菜鸟的leetcode刷题笔记 - Day4

16 - 最接近的三数之和给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。class Solution: def threeSumClosest(self, nums: List[int], target: int) -> int: n = len(nums) nums.sort() ans = float

2021-01-15 22:46:23 161

原创 一枚菜鸟的leetcode刷题笔记 - Day 3

15 - 三数之和给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。class Solution: def threeSum(self, nums: List[int]) -> List[List[int]]: nums.sort() ans = [] n = len(nums)

2021-01-14 00:17:46 130 2

原创 一枚菜鸟的leetcode刷题笔记 -Day 2

7 - 整数反转给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。class Solution: def reverse(self, x: int) -> int: flag = False #判断符号,如果是负数设置为True if x < 0 :

2021-01-12 21:58:42 229

原创 一枚菜鸟的leetcode刷题笔记 - Day 1

一枚菜鸟的leetcode刷题笔记 - Day 12 - 两数相加class Solution: def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode: num1, num2 = 0, 0 order = 1 while l1: num1 += l1.val * order l1 = l1.next

2021-01-11 19:52:59 249

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除