自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 推荐算法知识

就是大家都知道的将FPR和TPR当成横纵坐标,绘制ROC曲线,曲线下的面积就是AUC。

2023-08-10 10:49:29 1527

原创 KMP算法PMT数组与next数组构造解释

从零开始,静心学习  1. 前言KMP算法是用于搜索子串的经典算法,其中重点就在于利用了next数组减少了很多重复的搜索,这里不细讲KMP算法是怎么进行搜索的,我尽可能地将next的数组构造中的一些当时令我困惑的问题讲解清楚。  2. PMT(Partial Match Table)数组定义首先,我觉得这next数组构造一部分很模糊的主要原因是很多定义大家都不讲清楚,这里我只讲自己的理解方法。这里我先不讲next数组。首先,KMP算法要用到最长公共前

2021-12-10 17:14:50 3263

原创 面试算法题

1. 加油站(Leetcode 134)题目:在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。解答:class Solution { public int canCompleteCircuit(int[] gas, int[] cost) {

2021-08-12 15:33:43 890 1

原创 面试(技术|业务)题

1. 如何利用sql计算次日留存率?2. python中如何求两个集合的相同元素?

2021-08-04 15:55:30 366

原创 1. 回溯法

一天不刷算法,浑身难受  1. 回溯法模板res, path = []def backtrack(未探索区域, res, path): if path 满足条件: res.append(path) # return # 如果不用继续搜索需要return for 选择 in 当前未搜索区域所有的可能的选择: if 当前选择符合要求: path.append(当前选择) backtrack(新的未搜索区域, res, path) path.pop(

2021-05-10 21:46:40 226

原创 Python一些知识

不定期写一些学到的Python小知识  1 关于字典中键的一些了解1.1 字典的查找过程通过hash函数将key计算为哈希值;通过哈希值确定一个位置,这个位置是一个存放着可能存在冲突的元素的数组(即“桶”,bucket),每个元素都是一个键值对,理想情况下,这个数组里只有1个元素;遍历这个数组,找到目标key,返回对应的value。代码如下:def lookup(d, key): h = hash(key) cl = d.dath[h] for pair in

2021-04-27 16:46:18 273 1

原创 3.4 softmax回归

小白学深度学习  1. 回归模型1.1 标量表示原始线性模型o1=x1ω11+x2ω21+x3ω31+x4ω41+b1o2=x1ω12+x2ω22+x3ω32+x4ω42+b2o3=x1ω13+x2ω23+x3ω33+x4ω43+b3o_1 = x_1\omega_{11} + x_2\omega_{21} + x_3\omega_{31} + x_4\omega_{41} + b_1 \\o_2 = x_1\omega_{12} + x_2\omega_{22} +

2021-03-28 21:57:29 158

原创 3.3 线性回归的简介实现

小白学深度学习  1. 生成数据集同上节一样,略过  2. 读取数据from tensorflow import data as tfdatabatch_size = 10dataset = tfdata.Dataset.from_tensor_slices((features, labels))dataset = dataset.shuffle(buffer_size=num_examples)dataset = dataset.batch

2021-03-26 16:20:10 209

原创 第二章 Logistic回归

机器学习方法大总结,为了offer!  1. 基本形式原先的线性回归:y^=ωTx+b\hat y = \boldsymbol{\omega}^T \boldsymbol{x} + by^​=ωTx+b在分类任务中,我们使用Sigmoid函数作为连接函数,建立广义线性模型,即为Logistic回归,实际也叫做对数几率回归:y^=11+e−z,z=ωTx+b\hat y = \frac{1}{1+e^{-z}}, z = \boldsymbol{\omega}^T \boldsy

2021-03-25 15:33:04 501

原创 第一章 线性回归

机器学习大总结,为了offer!  

2021-03-24 17:45:51 186

原创 3.2 线性回归的从零开始实现

小白学深度学习  1. 生成数据集num_inputs = 2num_examples = 1000truw_w = [2, -3.4]true_b = 4.2features = tf.random.normal((num_examples, num_inputs), stddev=0.01, dtype = tf.float32)labels = tf.matmul(features, true_w)labels += tf.random.normal(label

2021-01-31 11:50:58 241

原创 3.1线性回归

小白学深度学习  模型训练训练数据y^(i)=x1(i)w1+x2(i)w2+b\hat y^{(i)} = x_1^{(i)}w_1 + x_2^{(i)}w_2 + by^​(i)=x1(i)​w1​+x2(i)​w2​+b损失函数l(i)(w1,w2,b)=12(y^(i)−y(i))2l^{(i)}(w_1, w_2, b) = \frac{1}{2}(\hat y^{(i)}-y^{(i)})^2l(i)(w1​,w2​,b)=21​(y^​(i)−y(

2021-01-28 21:08:20 186

原创 2.3 自动求梯度

小白学深度学习  1. 示例x = tf.reshape(tf.Variable(range(4), dtype = tf.float32), (4, 1))with tf.GradientTape() as t: t.watch(x) y = 2 * tf.matmul(tf.transpose(x), x)dy_dx = t.gradient(y, x)  2. 训练模式和预测模式with GradientTape(per

2021-01-26 15:22:18 190

原创 2.2 数据操作

小白学深度学习  1. 创建tensorx = tf.constant(range(12))x.shapelen(x)X = tf.reshape(x, (3, 4))tf.zeros((2, 3, 4))tf.ones((3, 4))tf.random.normal(shape=[3, 4], mean=0, stddev=1, dtype=tf.float32)注意:这里使用tf.random.normal()函数时最后一定要加上dtype=tf.flo

2021-01-26 15:08:05 170

原创 Python一些函数用法&小技巧

注:不定期持续更新  1. 基本函数  2. Numpy库clip()使得一个数组中的数值保持在一个区间内,区间外的数值被剪切至区间上下限>>>x = np.array([3, 17, 14, 23, 2, 2, 6, 8, 1, 2, 16, 0])>>>np.clip(x,2,5)array([3, 5, 5, 5, 2, 2, 5, 5, 2, 2, 5, 2])extract()在特定条件

2021-01-19 12:12:00 357 1

原创 抽样调查总结

性质简单随机抽样总体均值Yˉ=1N∑i=1NYi\bar Y = {1 \over N}\sum_{i=1}^NY_iYˉ=N1​∑i=1N​Yi​总体总量Y=∑i=1NYiY = \sum_{i=1}^NY_iY=∑i=1N​Yi​总体方差S2=1N−1∑i=1N(Yi−Yˉ)2S^2 = {1\over N-1}\sum_{i=1}^N(Y_i-\bar Y)^2S2=N−11​∑i=1N​(Yi​−Yˉ)2总体均值的估计Yˉ^=yˉ\hat {\bar Y...

2021-01-19 11:14:10 285

原创 第10章 数据聚合与分组运算

Python数据分析再学习  1. GroupBy机制## 创建数据df = pd.DataFrame({'key1': ['a', 'a', 'b', 'b', 'a'], 'key2': ['one', 'two', 'one', 'two', 'one'], 'data1': np.random.randn(5), 'data2': np.random.randn(5)})## 求均值### 方法1grouped = df['data1'].groupby(df[

2020-12-01 12:14:38 303

原创 第9章 绘图和可视化

注:Python数据分析再学习  1. matplotlib API入门1.1 Figure和Subplot## 创建一幅图fig = plt.figure()## 创建多幅图fig, axes = plt.subplots(2, 3)1.2 调整subplot周围的间距fig, axes = plt.subplots(2, 2, sharex = True, sharey = True)for i in range(2): for j in range

2020-11-27 14:05:47 294

原创 第8章 数据规整:聚合、合并和重塑

注:Python数据分析再学习  1. 层次化索引## 创建Seriesdata = pd.Series(np.random.randn(9), index = [['a', 'a', 'a', 'b', 'b', 'c', 'c', 'd', 'd'], [1, 2, 3, 1, 3, 1, 2, 2, 3]])data.index## 部分索引data['b']data['b':'c']data.loc[['b', 'd']]## 在内层进行选取data.

2020-11-26 15:14:58 269 1

原创 第7章 数据清洗和准备

Python数据分析再学习  1. 处理缺失数据1.1 检测缺失数据strings = pd.Series(['a', 'cd', 'qwer', 'NaN'])strings.isnull()strings[0] = Nonestrings.isnull()1.2 过滤缺失数据## Series过滤缺失值from numpy import nan as NAdata = pd.Series([1, NA, 3.5, NA, 7])data.dropna()

2020-11-24 09:31:06 195

原创 第6章 数据加载、存储与文件格式

Python数据分析再学习  1. 读写文本格式的数据1.1 读取CSV## 两种方法df = pd.read_csv('data.csv')df = pd.read_table('data.csv', sep = '')## 自定义列名pd.read_csv('data.csv', header = None)pd.read_csv('data.csv', names = ['a', 'b', 'c', 'd', 'message'])## 自定义索引nam

2020-11-22 17:17:57 162

原创 第5章 pandas入门

Python数据分析再学习  1. pandas数据结构介绍1.1 Series## 生成Seriesobj = pd.Series([4, 7, -5, 3])## 数组表示形式、索引对象obj.valuesobj.index## 对个数据进行标记obj2 = pd.Series([4, 7, -5, 3], index = ['d', 'b', 'a', 'c'])## 索引obj2['a']obj2[['c', 'a', 'd']]## 通过字

2020-11-20 19:07:04 254

原创 第4章 NumPy基础:数组和矢量计算

注:Python数据分析再学习  1. ndarray:一种多维数组对象import numpy as npdata = np.random.randn(2, 3)data.shapedata.dtype1.1 创建ndarraydata1 = [6, 7.5, 8, 0, 1]arr1 = np.array(data1)data2 = [[1, 2, 3], [4, 5, 6]]arr2 = np.array(data2)...

2020-11-19 21:15:59 308

原创 第3章 Python的数据结构、函数和文件

注:Python数据分析再学习  1. 数据结构和序列1.1 元组## 生成元组tup1 = 4, 5, 6tup2 = (4, 5, 6), (7, 8)## 转换成元组tuple([4, 0, 2])## 访问元组tup[0]## 如果元组中的某个对象是可变的,则可以在原位进行修改tup[1].append(3)## 元组连接(4, None, 'foo') + (6, 0) + ('bar')('foo', 'bar') * 4## 拆分

2020-11-18 22:14:55 254

原创 第2章 Python语法基础

注:python数据分析再学习  1. 使用缩进,而不是括号2. 万物皆对象3. 注释python中用 # 表示注释4. 函数和对象方法调用5. 变量和参数传递a = [1, 2, 3]b = aa.append(4)b ## b也会随之改变6. 动态引用,强类型type(a) ## 检查对象a的类型isinstance(a, (int, float)) ## 检查对象的类型是否在元组中7. 属性和方法8. 引入## some_module

2020-11-11 20:07:29 189

原创 第23章 使用lattice进行高级绘图

注:R语言的再复习之路  1. lattice包格式:graph_function(formula, data = , options)graph_function是各种绘图函数formula指定要展示变量和任意调节变量data = 指定数据框options是用逗号分隔的参数在公式中,主要格式为y ~ x | A * B,竖线左侧的变量称为主要变量,右边的变量称为调节变量。对于单变量图,用~ x代替y ~ x;对于3D图,用z ~ x * y代替y ~ x。

2020-11-10 22:10:12 1582

原创 第21章 创建包

注:R语言的再复习之路  1. 非参分析和npar包1.1 基本统计分析## 直方图library(npar)hist(life$hlef, xlab="Healthy Life Expectancy (years) at Age 65", main="Distribution of Healthy Life Expectancy for Women", col = 'grey', breaks = 10)## 并排点图library(g

2020-11-10 21:16:07 483

原创 第20章 高级编程

注:R语言的再复习之路  1. R语言回顾1.1 数据类型原子向量:包含单个数据类型的数组泛型向量:列表,是原子向量的集合原子向量R语言没有标量型数据。标量是具有单一元素的原子向量,例如k <- 2是k <- c(2)的简写。x <- seq(1:8)attr(x, 'dim') <- c(2, 4)attr(x, 'dimnames') <- list(c('A1', 'A2'), c('B1', 'B2', 'B3', 'B

2020-11-09 19:02:58 220

原创 第19章 使用ggplot2进行高级绘图

注:R语言的再复习之路  1. ggplot2包介绍## 拟合平滑曲线ggplot(data = mtcars, aes(x = wt, y = mpg)) + geom_point(pch = 17, color = 'blue', size = 2) + geom_smooth(method = 'lm', color = 'red', linetype = 2) + labs(title = 'Automobile Data', x = 'W

2020-11-06 22:24:44 1293

原创 第18章 处理缺失数据的高级方法

注:R语言的再复习之路  1. 处理缺失值的步骤识别缺失数据检查导致数据缺失的原因删除包含缺失值的实例或用合理的数值代替缺失值  2. 识别缺失值函数complete.cases()可以用来识别矩阵或数据框中没有缺失值的行。若每行都包含完整的实例,则返回TRUE的逻辑向量;若每行有一个或多个缺失值,则返回FALSE。## 列出没有缺失值的行sleep[complete.cases(sleep), ]## 列出有一个或多个缺失值的行s

2020-11-03 20:44:08 357

原创 第17章 分类

注:R语言再复习之路  1. Logistic回归fit.logit <- glm(class~ ., data = df.train, family = binomial())summary(fit.logit)prob <- predict(fit.logit, df.validate, type = 'response')logit.pred <- factor(prob > .5, levels = c(FALSE, TRUE), label

2020-10-31 11:05:46 394

原创 第13章 广义线性模型

注:R语言的再复习之路  1. 广义线性模型和glm()函数广义线性模型的拟合形式为:g(μY)=β0+∑j=1pβjXj,g(\mu_Y) = \beta_0 + \sum_{j=1}^p\beta_jX_j,g(μY​)=β0​+j=1∑p​βj​Xj​,其中g(μY)g(\mu_Y)g(μY​)是条件均值函数(称为连接函数),这里YYY服从指数组分布中的一种即可。1.1 glm()函数基本形式:glm(formula, family = family(link

2020-10-24 14:48:59 1572

原创 第12章 重抽样与自助法

R语言的再复习之路  置换检验置换检验步骤:(1)与参数方法类似,计算观测数据的t统计量,称为t0;(2)将两组数据放在一个组中;(3)随机分配一半到A处理中,分配一半到B处理中;(4)计算并记录新观测的t统计量;(5)对每一种可能的随机分配重复步骤(3)~(4);(6)将所有情况下的t统计量按升序排列,这便是基于样本数据的经验分布;(7)如果t0落在经验分布中间95%部分的外面,则在0.05的显著性水平下,拒绝两个处理组的总体均值相等的零假设。 注:

2020-10-22 20:23:14 1551 1

原创 第11章 中级绘图

注:R语言的再复习之路  1. 散点图# 添加最佳拟合曲线的散点图attach(mtcars)plot(wt, mpg)abline(lm(mpg ~ wt), col = 'red', lwd = 2, lty = 1)lines(lowess(wt, mpg), col = 'blue', lwd = 2, lty = 2)# scatterplot()函数library(car)scatterplot(mpg ~ wt | cyl, data = mtcar

2020-10-21 16:21:44 322

原创 第9章 方差分析

注:R语言的再复习之路  1. ANOVA模型拟合1.1 aov()函数语法为aov(formula, data = dataframe)符号用法~分隔符号,左边为响应变量,右边为解释变量:表示变量的交互项,例如y ~ A + B + C*表示所有可能交互项,例如y ~ A * B * C等价于y ~ A + B + C + A:B + B:C + A:C + A:B:C^表示交互项达到某个次数,例如y ~ (A + B + C)

2020-10-20 08:54:25 872

原创 第8章 回归

R语言的再复习之路  1.OLS回归1.1 用lm()拟合回归模型格式myfit <- lm(Y ~ X1 + X2 + ... + Xk, data)符号用途~分隔符号,左边为相应变量,右边为解释变量。例如Y ~ X + Z + W+分隔预测变量:表示预测变量的交互项。例如Y ~ X + Z + X:Z*表示所有可能交互项的简洁方式。Y ~ X * Z * W即为Y ~ X + Z + W + X:Z + Z:W + X

2020-10-15 21:34:27 1120

原创 第7章 基本统计分析

注:R语言再复习之路  1.描述性统计分析1.1 整体计算描述性统计量包函数basesummary()Hmiscdescribe()pastecsstat.desc()psychdescribe()myvars <- c('mpg', 'hp', 'wt')summary(mtcars[myvars])Hmisc::describe(mtcars[myvars])stat.desc(mtcars[myvars

2020-10-11 20:49:42 330

原创 第6章 基本图形

R语言的再学习之路条形图1. 简单条形图library(vcd)counts <- table(Arthritis$Improved)barplot(counts, main = 'Simple Bar Plot', xlab = 'Improvement', ylab = 'Frequency', horiz = TRUE)2. 堆砌条形图和分组条形图beside = FALSE(默认)绘制堆砌条形图,beside = TRUE绘制分组条形图counts <- table(A

2020-10-10 09:39:12 365

原创 第5章 高级数据管理

注:R语言的再复习之路1. 数值和字符处理函数1.1 数学函数函数描述ceiling(x)不小于x的最小整数floor(x)不大于x的最大整数round(x, digits = n)将x舍入为指定位的小数signif(x, digits = n)将x舍入为指定有效数字位的数1.2 统计函数函数描述median(x)中位数mad(x)绝对中位差quantile(x, probs)求分位数。x为待求分位数的数值型向

2020-09-29 19:22:33 433

原创 第4章 基本数据管理

注:R语言的再复习之路1. 创建新变量mydata <- transform(mydata, sumx = x1 + x2, meanx = (x1 + x2) / 2)2. 变量的重编码leadership <- within(leadership, { agecat <- NA, agecat[age > 75] <- 'Elder' ag

2020-09-28 18:59:04 328

空空如也

空空如也

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

TA关注的人

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