自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Go语言学习—Day13—并发机制

2020-12-26 23:55:47 84

原创 Go语言学习—Day12—单元测试

2020-12-25 23:39:39 89

原创 Go语言处理—Day11—反射机制

2020-12-24 21:47:39 108

原创 Go语言学习-Day10-异常处理

2020-12-23 23:00:36 69

原创 Pandas基础-task03-索引

2020-12-22 23:57:33 48

原创 Go语言学习—day9—包管理

2020-12-22 23:55:50 62

原创 Go语言学习—Day8—结构体、方法、接口

2020-12-21 23:57:04 50

原创 Go语言学习—Day7—函数

2020-12-20 23:55:09 44

原创 Pandas基础—Task02—Pandas基础

2020-12-19 22:46:56 69 1

原创 Go语言学习—Day6—切片、数组

数组指针func main() { var a [5]int var aPtr *[5]int aPtr = &a //这样简短定义也可以aPtr := &a fmt.Println(aPtr) test(aPtr) fmt.Println(aPtr)}func test(aPtr *[5]int) { aPtr[1] = 5 fmt.Println(aPtr)}先定义了一个数组a,然后定一个指向数组a的指针aPtr,然后将这个指针传入一个函数...

2020-12-19 22:20:21 70 1

原创 Go语言学习—Day5—字典、字符串

1 字典定义字典var m1 map[string]intm2 := make(map[int]interface{}, 100)m3 := map[string]string{ "name": "james", "age": "35",}遍历字典for key, value := range m3 { fmt.Println("key: ", key, " value: ", value)}放入元素m3["key1"] = "v1"m3["key2"] = "v2"

2020-12-18 23:22:12 43 1

原创 Go语言学习-Day04-运算符、控制语句

1.运算符各运算符优先级如下:1 ||2 &&3 == != < <= > >=4 + - | ^5 * / % << >> & &^2 控制语句2.1 if2.2 switchswitch x.(type){ case type: statement(s); case type: statement(s); default: // 可选 statement(s);}

2020-12-17 23:53:36 76 1

原创 Go语言学习-Day3-变量、常量、枚举

变量变量声明方式:指定变量类型默认值:数值类型(包括complex64/128)默认零值,bool默认false,字符串默认“”,“var a *int、var a []int、var a map[string] int、var a chan int、var a func(string) int、var a error // error 是接口”默认nil“:=”声明,省略 var, 注意 := 左侧必须声明新的变量,否则产生编译错误,格式:v_name := value多变量声明:

2020-12-16 23:36:49 49

原创 Pandas基础-Task01-python基础

练习题:Ex1:利用列表推导式写矩阵乘法一般的矩阵乘法根据公式,可以由三重循环写出:In [138]: M1 = np.random.rand(2,3)In [139]: M2 = np.random.rand(3,4)In [140]: res = np.empty((M1.shape[0],M2.shape[1]))In [141]: for i in range(M1.shape[0]): .....: for j in range(M2.shape[1]): .

2020-12-16 23:15:42 80

原创 Go语言学习-Day2-

1 数据类型1.1 按类别布尔型:常量 true /false。数字类型:整型和浮点型。复数:complex128(64 位实数和虚数)和 complex64(32 位实数和虚数),其中 complex128 为复数的默认类型。 注:复数的值由三部分组成 RE + IMi,其中 RE 是实数部分,IM 是虚数部分,RE 和 IM 均为 float 类型,而最后的 i 是虚数单位。复数也可以用==和!=进行相等比较,只有两个复数的实部和虚部都相等的时候它们才是相等的1.2 派生类型指针类

2020-12-15 23:22:07 54

原创 Go语言学习-Day1-Go初探

package mainimport "fmt"func main() { /* Always Hello, World! */ fmt.Println("Hello, World!")}解释:package main定义了包名。必须在源文件中非注释的第一行指明这个文件属于哪个包。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。import "fmt"告诉编译器程序运行需要用fmt包。func main() 是程序开始执行

2020-12-14 22:59:34 77 1

原创 新闻推荐-task05

排序模型通过召回的操作, 我们已经进行了问题规模的缩减, 对于每个用户, 选择出了N篇文章作为了候选集,并基于召回的候选集构建了与用户历史相关的特征,以及用户本身的属性特征,文章本省的属性特征,以及用户与文章之间的特征,下面就是使用机器学习模型来对构造好的特征进行学习,然后对测试集进行预测,得到测试集中的每个候选集用户点击的概率,返回点击概率最大的topk个文章,作为最终的结果。排序阶段选择了三个比较有代表性的排序模型,它们分别是:LGB的排序模型LGB的分类模型深度学习的分类模型DIN得到了最

2020-12-06 23:54:52 80

原创 新闻推荐-task04

整体思路我们首先获得用户的最后一次点击操作和用户的历史点击, 这个基于我们的日志数据集做;基于用户的历史行为制作特征, 这个会用到用户的历史点击表, 最后的召回列表, 文章的信息表和embedding向量;制作标签, 形成最后的监督学习数据集制作与用户历史行为相关特征对于每个用户召回的每个商品, 做特征。 具体步骤如下:对于每个用户, 获取最后点击的N个商品的item_id,对于该用户的每个召回商品, 计算与上面最后N次点击商品的相似度的和(最大, 最小,均值), 时间差特征,相似性特征,字

2020-12-03 21:19:59 57

原创 新闻推荐-task03

多路召回所谓的“多路召回”策略,就是指采用不同的策略、特征或简单模型,分别召回一部分候选集,然后把候选集混合在一起供后续排序模型使用,可以明显的看出,“多路召回策略”是在“计算速度”和“召回率”之间进行权衡的结果。其中,各种简单策略保证候选集的快速召回,从不同角度设计的策略保证召回率接近理想的状态,不至于损伤排序效果。如下图是多路召回的一个示意图,在多路召回中,每个策略之间毫不相关,所以一般可以写并发多线程同时进行,这样可以更加高效。(未完待补充)...

2020-11-30 23:45:00 72

原创 新闻推荐-task02

字段含义train_click_log.csv文件数据中每个字段的含义user_id: 用户的唯一标识click_article_id: 用户点击的文章唯一标识click_timestamp: 用户点击文章时的时间戳click_environment: 用户点击文章的环境click_deviceGroup: 用户点击文章的设备组click_os: 用户点击文章时的操作系统click_country: 用户点击文章时的所在的国家click_region: 用户点击文章时所在的区域click

2020-11-27 22:05:39 97

原创 新闻推荐-task01

赛题简介此次比赛是新闻推荐场景下的用户行为预测挑战赛, 该赛题是以新闻APP中的新闻推荐为背景, 目的是要求我们根据用户历史浏览点击新闻文章的数据信息预测用户未来的点击行为, 即用户的最后一次点击的新闻文章, 这道赛题的设计初衷是引导大家了解推荐系统中的一些业务背景, 解决实际问题。数据概况该数据来自某新闻APP平台的用户交互数据,包括30万用户,近300万次点击,共36万多篇不同的新闻文章,同时每篇新闻文章有对应的embedding向量表示。为了保证比赛的公平性,从中抽取20万用户的点击日志数据作为

2020-11-25 23:56:30 53

原创 强化学习-task04

PPO前身TRPO:

2020-11-03 23:54:03 96

原创 强化学习-task03

悬崖寻路问题(CliffWalking)是指在一个4 x 12的网格中,智能体以网格的左下角位置为起点,以网格的下角位置为终点,目标是移动智能体到达终点位置,智能体每次可以在上、下、左、右这4个方向中移动一步,每移动一步会得到-1单位的奖励。代码实现:env = gym.make("CliffWalking-v0") # 0 up, 1 right, 2 down, 3 leftenv = CliffWalkingWapper(env)agent = QLearning( obs_dim=en

2020-10-29 23:19:03 204

原创 推荐系统-task05-GBDT+LR

1. 逻辑回归逻辑回归假设数据服从伯努利分布,在线性回归的基础上加了一个 Sigmoid 函数(非线形)映射,通过极大化似然函数的方法,运用梯度下降来求解参数,来达到将数据二分类的目的。逻辑回归是用一个线性模型去拟合P(y=1∣x)P(y=1|x)P(y=1∣x)这个事件的对数几率logp1−p=θTxlog\frac{p}{1-p}=\theta^Txlog1−pp​=θTx目标函数:J(w)=−1m(∑i=1m(yilog⁡fw(xi)+(1−yi)log⁡(1−fw(xi))) J(w)=-

2020-10-29 22:03:22 73

原创 推荐系统-task04-Wide&Deep

Wide & Deep模型Memorization 和 Generalization是推荐系统很常见的两个概念。Memorization指的是通过用户与商品的交互信息矩阵学习规则,Generalization则是泛化规则。Memorization趋向于更加保守,推荐用户之前有过行为的items。相比之下,generalization更加趋向于提高推荐系统的多样性(diversity)。Memorization只需要使用一个线性模型即可实现,而Generalization需要使用DNN实现。

2020-10-27 22:53:07 39

原创 深度学习-task02-马尔可夫决策树及表格型方法

马尔可夫决策树马尔可夫性质:未来的转移与过去独立,只取决于现在。MRP:马尔可夫链再加一个奖励函数。贝尔曼等式:定义状态之间的迭代关系。(出差不方便,与下一次打卡一起补上)...

2020-10-23 22:52:05 505 1

原创 推荐系统-task03-矩阵分解

1.矩阵分解隐语义模型的核心思想是通过隐含特征(latent factor)联系用户兴趣和物品(item), 基于用户的行为找出潜在的主题和分类, 然后对item进行自动聚类,划分到不同类别/主题(用户的兴趣)。矩阵分解模型原理:基于评分矩阵去找到用户兴趣和物品的隐向量表达, 把评分矩阵分解成Q和P两个矩阵乘积的形式(通过分解协同过滤的共现矩阵来得到用户和物品的隐向量,基于这两个矩阵去预测某个用户对某个物品的评分去进行推荐。Preference⁡(u,i)=rui=puTqi=∑f=1Fpu,kqk

2020-10-22 23:16:46 57

原创 推荐系统-task02-协同过滤

1. 协同过滤:基本思想是根据用户之前的喜好以及其他兴趣相近的用户的选择来给用户推荐物品基于用户的协同过滤算法(UserCF): 给用户推荐和他兴趣相似的其他用户喜欢的产品基于物品的协同过滤算法(ItemCF): 给用户推荐和他之前喜欢的物品相似的物品2. 相似性度量方法(1)杰卡德(Jaccard)相似系数两个用户uuu和vvv交互商品交集的数量占这两个用户交互商品并集的数量的比例:simuv=∣N(u)∩N(v)∣∣N(u)∣∪∣N(v)∣ sim_{uv}=\frac{|N(u) \

2020-10-21 22:19:53 52

原创 强化学习-task01

1.定义强化学习讨论的问题是一个 智能体(agent) 怎么在一个复杂不确定的环境(environment)里面去极大化它能获得的奖励。在强化学习过程中,agent 跟 environment 一直在交互。Agent 在环境里面获取到状态,agent 会利用这个状态输出一个 action,一个决策。然后这个决策会放到环境之中去,环境会通过这个 agent 采取的决策,输出下一个状态以及当前的这个决策得到的奖励。Agent 的目的就是为了尽可能多地从环境中获取奖励。2.特征有 trial-and-

2020-10-20 23:57:44 658

原创 推荐系统入门-task01-概述

1. 推荐系统评测指标(1)用户满意度通过用户调查或者在线实验获得,可以通过购买率度量用户的满意度、与购买率类似的点击率、用户停留时间和转化率等指标来度量(2)预测准确度评分预测评分预测的预测准确度一般通过均方根误差(RMSE)和平均绝对误差(MAE)计算.对于测试集中的一个用户uuu和物品iii,令ruir_{ui}rui​是用户uuu对物品iii的实际评分,而rui^\hat{r_{ui}}rui​^​是推荐模型预测出的评分,那么RMSE可以定义为: RMSE=∑u,i∈T(rui−r^

2020-10-20 22:19:47 54

原创 金融风控-task05 模型融合

平均:简单平均法加权平均法投票:简单投票法加权投票法综合:排序融合log融合Blending&stackingstacking:构建多层模型,并利用预测结果再拟合预测。blending:选取部分数据预测训练得到预测结果作为新特征,带入剩下的数据中预测。boosting/bagging(在Task4中已经提及,就不再赘述)Blending与stacking的不同stacking:(1)stacking中由于两层使用的数据不同,所以可以避免信息泄露的问题

2020-09-27 22:24:31 48

原创 金融风控-Task04 建模调参

模型对比与性能评估集成模型集成方法集成方法主要包括Bagging和Boosting,主要区别:样本选择上: Bagging方法的训练集是从原始集中有放回的选取,所以从原始集中选出的各轮训练集之间是独立的;而Boosting方法需要每一轮的训练集不变,只是训练集中每个样本在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整样例权重上: Bagging方法使用均匀取样,所以每个样本的权重相等;而Boosting方法根据错误率不断调整样本的权值,错误率越大则权重越大预测函数上: Bagg

2020-09-24 22:55:31 63

原创 金融风控-task02数据分析

1.查看缺失值和唯一值查看含缺失值列数print(f'There are {data_train.isnull().any().sum()} columns in train dataset with missing values.')缺失率可视化missing = data_train.isnull().sum()/len(data_train)missing = missing[missing > 0]missing.sort_values(inplace=True)missing

2020-09-18 23:33:35 56

原创 金融风控-task03特征工程

一、字段含义id 为贷款清单分配的唯一信用证标识loanAmnt 贷款金额term 贷款期限(year)interestRate 贷款利率installment 分期付款金额grade 贷款等级subGrade 贷款等级之子级employmentTitle 就业职称employmentLength 就业年限(年)homeOwnership 借款人在登记时提供的房屋所有权状况annualIncome 年收入verificationStatus 验证状态issueDate 贷款发放的

2020-09-15 22:59:32 92

原创 LeetCode 分类练习-task04查找

双指针查找Q:反转一个单链表p1作为前面的指针探路,p2作为后面的指针跟进,顺着链表跑一圈,搞定问题。# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def reverseList(self, head: ListNode) -> Lis

2020-08-29 00:46:37 60

原创 LeetCode 分类练习-task03查找

一.查找表考虑的基本数据结构第一类: 查找有无–set元素’a’是否存在,通常用set:集合第二类: 查找对应关系(键值对应)–dict元素’a’出现了几次:dict–>字典第三类: 改变映射关系–map通过将原有序列的关系映射统一表示为其他二. 对撞指针遍历时多用索引,而不要直接用值进行遍历三. 滑动数组e.x.固定滑动数组的长度为K+1,当这个滑动数组内如果能找到两个元素的值相等,就可以保证两个元素的索引的差是小于等于k的。如果当前的滑动数组中没有元素相同,就右移滑动数

2020-08-25 22:50:48 91

原创 LeetCode 分类练习-task02动态规划

通用解题思路第一步:确定动态规划状态第二步:写出状态转移方程第三步:考虑初始化条件第四步:考虑输出状态第五步:考虑对时间,空间复杂度的优化Leetcode 300:最长上升子序列**题目描述给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。该题目可以直接用一个一维数组dp来存储转移状态,dp[i]可以定义为以nums[i]这个数结尾的最长递增子序

2020-08-23 23:45:11 47

原创 LeetCode 分类练习-task01分治

分治法适用的情况原问题的计算复杂度随着问题的规模的增加而增加。原问题能够被分解成更小的子问题。子问题的结构和性质与原问题一样,并且相互独立,子问题之间不包含公共的子子问题。原问题分解出的子问题的解可以合并为该问题的解。分治算法的步骤**分:**递归地将问题分解为各个的子问题(性质相同的、相互独立的子问题);**治:**将这些规模更小的子问题逐个击破;**合:**将已解决的子问题逐层合并,最终得出原问题的解。具体实例169. 多数元素给定一个大小为 n 的数组,找到其中的众数。众数是

2020-08-19 22:28:02 88

原创 python基础-Task09:文件与文件系统

1. 文件与文件系统打开文件open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True) file: 必需,文件路径(相对或者绝对路径)。mode: 可选,文件打开模式buffering: 设置缓冲encoding: 一般使用utf8errors: 报错级别newline: 区分换行符2. OS 模块中关于文件/目录常用的函数有了OS(Operation Sy

2020-08-09 00:43:54 92

原创 python基础-task08模块与datetime模块

模块模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 Python 标准库的方法。模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 Python 标准库的方法。容器 -> 数据的封装函数 -> 语句的封装类 -> 方法和属性的封装模块 -> 程序文件1. 导入模块第一种:import 模块名import Tempe

2020-08-07 19:14:27 90

空空如也

空空如也

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

TA关注的人

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