<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[dataastron的博客]]></title><description><![CDATA[御风而行,横越未知]]></description><link>https://blog.csdn.net/dataastron</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; dataastron]]></copyright><item><title><![CDATA[这一年(2021)我是怎么从82kg到92kg的]]></title><link>https://blog.csdn.net/dataastron/article/details/121139689</link><guid>https://blog.csdn.net/dataastron/article/details/121139689</guid><author>dataastron</author><pubDate>Fri, 29 Oct 2021 04:45:09 +0800</pubDate><description><![CDATA[综合看了下支付宝、云闪付、美团的账单，粗略算了下交易笔数和平均卡路里。如下：蜜雪冰城 60笔，其中3月、4月、5月都有12笔。都是买的黑糖珍珠圣代。除了这60笔还有几个甜筒不算。网上查了是376卡，我们就按照300卡乘以60算，300*60/7700=2.33kg。蜜雪冰城就贡献了2.3kg的体重。备注都是支付宝支付的数据不同的产品热量不一样。全糖的奥利奥大圣代419卡路里、冰淇淋红茶274大卡、...]]></description><category></category></item><item><title><![CDATA[毛家湾驾考]]></title><link>https://blog.csdn.net/dataastron/article/details/120177154</link><guid>https://blog.csdn.net/dataastron/article/details/120177154</guid><author>dataastron</author><pubDate>Wed, 08 Sep 2021 08:43:25 +0800</pubDate><description><![CDATA[考完了，存档下路线。希望大家考试顺利！改天来码字。写点经验哈！灯光操作]]></description><category></category></item><item><title><![CDATA[数仓]]></title><link>https://blog.csdn.net/dataastron/article/details/115350787</link><guid>https://blog.csdn.net/dataastron/article/details/115350787</guid><author>dataastron</author><pubDate>Wed, 31 Mar 2021 15:00:36 +0800</pubDate><description><![CDATA[数仓分层
DW ：data warehouse 翻译成数据仓库
DW数据分层，由下到上为 DWD,DWB,DWS
DWD：data warehouse detail 细节数据层，有的也称为 ODS层，是业务层与数据仓库的隔离层
DWB：data warehouse base 基础数据层，存储的是客观数据，一般用作中间层，可以认为是大量指标的数据层。
DWS：data warehouse service 服务数据层，基于DWB上的基础数据，整合汇总成分析某一个主题域的服务数据，一般是宽表。

...]]></description><category></category></item><item><title><![CDATA[datetime+dateutil_生成过去n个月的yyyymm格式列表]]></title><link>https://blog.csdn.net/dataastron/article/details/113755644</link><guid>https://blog.csdn.net/dataastron/article/details/113755644</guid><author>dataastron</author><pubDate>Mon, 08 Feb 2021 13:34:57 +0800</pubDate><description><![CDATA[import datetime
z=datetime.datetime.now()
import dateutil
mon_list=[]
for i in range(10):
    monz=z+dateutil.relativedelta.relativedelta(months=-i)
    mon_list.append(monz.strftime('%Y%m'))

需要安装dateutil
['202102',
 '202101',
 '202012',
 '202011',
 '2020]]></description><category></category></item><item><title><![CDATA[风控产品说-用户体验和风控-以IP封禁为例]]></title><link>https://blog.csdn.net/dataastron/article/details/108737545</link><guid>https://blog.csdn.net/dataastron/article/details/108737545</guid><author>dataastron</author><pubDate>Tue, 22 Sep 2020 18:11:23 +0800</pubDate><description><![CDATA[我用电子科技大学教育网的ip在浏览boss直聘上的岗位，才打开第二页，就被BOSS直聘的防爬给拦截了。
这个产品自从疫情后加了防爬风控，体验真的很差。
如下图所示


（1）提示IP行为违规，24小时解封。
建议登陆访问，我就是因为屏蔽了很多公司查不了，所以才退出账号，直接搜索访问的。
（2）对于IP反作弊而言，特别是政府机关、学校这种出口IP，单个IP聚合了多个自然人的行为，这款产品的产品经理粗暴地把它汇总成一个自然人的行为，或者说把多个自然人的行为都指向到某个人恶意访问行为，可见产研对技术细节的把握还欠]]></description><category></category></item><item><title><![CDATA[Thread的sleep()、join()和wait()]]></title><link>https://blog.csdn.net/dataastron/article/details/108556873</link><guid>https://blog.csdn.net/dataastron/article/details/108556873</guid><author>dataastron</author><pubDate>Sat, 12 Sep 2020 23:21:26 +0800</pubDate><description><![CDATA[Thread的sleep()、join()和wait()
1 sleep
sleep()会让线程交出CPU的执行权，但是不会释放锁。
public class ThreadSleep {
//定义锁
private static final Object LOCK = new Object();

public static void main(String[] args) throws InterruptedException {
    Thread thread1 = new Thread(new R]]></description><category></category></item><item><title><![CDATA[剑指offer_动态规划]]></title><link>https://blog.csdn.net/dataastron/article/details/108351510</link><guid>https://blog.csdn.net/dataastron/article/details/108351510</guid><author>dataastron</author><pubDate>Tue, 01 Sep 2020 21:50:31 +0800</pubDate><description><![CDATA[树
#26.py
# 输入两棵二叉树A和B，判断B是不是A的子结构。(约定空树不是任意一个树的子结构)

# B是A的子结构， 即 A中有出现和B相同的结构和节点值。

# 例如:
# 给定的树 A:

#      3
#     / \
#    4   5
#   / \
#  1   2
# 给定的树 B：

#    4 
#   /
#  1
# 返回 true，因为 B 与 A 的一个子树拥有相同的结构和节点值。

# 示例 1：

# 输入：A = [1,2,3], B = [3,1]
# ]]></description><category></category></item><item><title><![CDATA[剑指offer_数学和其他]]></title><link>https://blog.csdn.net/dataastron/article/details/108344194</link><guid>https://blog.csdn.net/dataastron/article/details/108344194</guid><author>dataastron</author><pubDate>Tue, 01 Sep 2020 15:54:18 +0800</pubDate><description><![CDATA[数学和其他
#14_2.py
# 给你一根长度为 n 的绳子，请把绳子剪成整数长度的 m 段（m、n都是整数，n&gt;1并且m&gt;1），每段绳子的长度记为 k[0],k[1]...k[m - 1] 。请问 k[0]*k[1]*...*k[m - 1] 可能的最大乘积是多少？例如，当绳子的长度是8时，我们把它剪成长度分别为2、3、3的三段，此时得到的最大乘积是18。
class Solution:
    def cuttingRope(self, n: int) -&gt; int:
        ]]></description><category></category></item><item><title><![CDATA[剑指offer_双指针]]></title><link>https://blog.csdn.net/dataastron/article/details/108344167</link><guid>https://blog.csdn.net/dataastron/article/details/108344167</guid><author>dataastron</author><pubDate>Tue, 01 Sep 2020 15:53:28 +0800</pubDate><description><![CDATA[双指针
#21.py
#输入一个整数数组，实现一个函数来调整该数组中数字的顺序，使得所有奇数位于数组的前半部分，所有偶数位于数组的后半部分。
class Solution:
    def exchange(self, nums: List[int]) -&gt; List[int]:
        j=len(nums)-1
        i=0
        while i&lt;j:
            if nums[i]%2==0:
                if nums[j]%]]></description><category></category></item><item><title><![CDATA[剑指offer_剩下全部]]></title><link>https://blog.csdn.net/dataastron/article/details/108336043</link><guid>https://blog.csdn.net/dataastron/article/details/108336043</guid><author>dataastron</author><pubDate>Tue, 01 Sep 2020 10:36:04 +0800</pubDate><description><![CDATA[树
#12.py
# 请设计一个函数，用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始，每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格，那么该路径不能再次进入该格子。例如，在下面的3×4的矩阵中包含一条字符串“bfce”的路径（路径中的字母用加粗标出）。

# [["a","b","c","e"],
# ["s","f","c","s"],
# ["a","d","e","e"]]

# 但矩阵中不包含字符串“abfb”的路径，因为字符串]]></description><category></category></item><item><title><![CDATA[剑指offer_二分法]]></title><link>https://blog.csdn.net/dataastron/article/details/108335923</link><guid>https://blog.csdn.net/dataastron/article/details/108335923</guid><author>dataastron</author><pubDate>Tue, 01 Sep 2020 10:34:04 +0800</pubDate><description><![CDATA[二分
#11.py
# 把一个数组最开始的若干个元素搬到数组的末尾，我们称之为数组的旋转。输入一个递增排序的数组的一个旋转，输出旋转数组的最小元素。例如，数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转，该数组的最小值为1。  
class Solution:
    def minArray(self, numbers: List[int]) -&gt; int:
        left=0
        right=len(numbers)-1
        while lef]]></description><category></category></item><item><title><![CDATA[剑指offer_链表题]]></title><link>https://blog.csdn.net/dataastron/article/details/108335787</link><guid>https://blog.csdn.net/dataastron/article/details/108335787</guid><author>dataastron</author><pubDate>Tue, 01 Sep 2020 10:29:46 +0800</pubDate><description><![CDATA[链表
#6.py
# 输入一个链表的头节点，从尾到头反过来返回每个节点的值（用数组返回）。
# 示例 1：
# 输入：head = [1,3,2]
# 输出：[2,3,1]
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def reversePri]]></description><category></category></item><item><title><![CDATA[剑指offer上（1-39）]]></title><link>https://blog.csdn.net/dataastron/article/details/108352887</link><guid>https://blog.csdn.net/dataastron/article/details/108352887</guid><author>dataastron</author><pubDate>Mon, 17 Aug 2020 14:36:17 +0800</pubDate><description><![CDATA[#3.py```python3# jc3找出数组中重复的数字。# 在一个长度为 n 的数组 nums 里的所有数字都在 0～n-1 的范围内。数组中某些数字是重复的，但不知道有几个数字重复了，也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。# 示例 1：# 输入：# [2, 3, 1, 0, 2, 5, 3]# 输出：2 或 3  # 限制：# 2 &lt;= n &lt;= 1000...]]></description><category></category></item><item><title><![CDATA[剑指offer代码下]]></title><link>https://blog.csdn.net/dataastron/article/details/108055256</link><guid>https://blog.csdn.net/dataastron/article/details/108055256</guid><author>dataastron</author><pubDate>Mon, 17 Aug 2020 14:32:53 +0800</pubDate><description><![CDATA[#40.py
# 输入整数数组 arr ，找出其中最小的 k 个数。例如，输入4、5、1、6、2、7、3、8这8个数字，则最小的4个数字是1、2、3、4。
# 示例 1：
# 输入：arr = [3,2,1], k = 2
# 输出：[1,2] 或者 [2,1]
# 示例 2：
# 输入：arr = [0,1,2,1], k = 1
# 输出：[0]
class Solution:
    def getLeastNumbers(self, arr: List[int], k: int) -&gt; Lis]]></description><category></category></item><item><title><![CDATA[剑指offer代码上]]></title><link>https://blog.csdn.net/dataastron/article/details/108054979</link><guid>https://blog.csdn.net/dataastron/article/details/108054979</guid><author>dataastron</author><pubDate>Mon, 17 Aug 2020 14:27:19 +0800</pubDate><description><![CDATA[#3.py
# jc3找出数组中重复的数字。
# 在一个长度为 n 的数组 nums 里的所有数字都在 0～n-1 的范围内。数组中某些数字是重复的，但不知道有几个数字重复了，也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。
# 示例 1：
# 输入：
# [2, 3, 1, 0, 2, 5, 3]
# 输出：2 或 3  
# 限制：
# 2 &lt;= n &lt;= 100000
class Solution:
    def findRepeatNumber(self, nums: Li]]></description><category></category></item><item><title><![CDATA[leetcode23. 合并K个排序链表]]></title><link>https://blog.csdn.net/dataastron/article/details/107917907</link><guid>https://blog.csdn.net/dataastron/article/details/107917907</guid><author>dataastron</author><pubDate>Mon, 10 Aug 2020 17:24:54 +0800</pubDate><description><![CDATA[方法1：通过优先级队列，不是把所有节点塞进去。只把每个链表的头节点放进去。
方法2：归并排序（还未实现）
方法3：直接便利所有节点，排序，重新输出节点。
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def mergeKLists(self, li]]></description><category></category></item><item><title><![CDATA[机器学习 缺失值处理]]></title><link>https://blog.csdn.net/dataastron/article/details/107913054</link><guid>https://blog.csdn.net/dataastron/article/details/107913054</guid><author>dataastron</author><pubDate>Mon, 10 Aug 2020 14:53:37 +0800</pubDate><description><![CDATA[总结了三种方法：
（1）直接删除法，会舍弃数据中的一些重要信息；减少了样本量
（2）基于统计学的填充方法，
总结下主要有如均值填充，中值填充，常用值填充，众数填充
（3）机器学习的填充方法，通过算法预测缺失值。

...]]></description><category></category></item><item><title><![CDATA[统计机器学习-优化算法-梯度下降法和牛顿法]]></title><link>https://blog.csdn.net/dataastron/article/details/107855585</link><guid>https://blog.csdn.net/dataastron/article/details/107855585</guid><author>dataastron</author><pubDate>Fri, 07 Aug 2020 09:51:50 +0800</pubDate><description><![CDATA[梯度下降法和牛顿法的区别与对比
李航小蓝书附录1和2介绍了梯度下降法和牛顿法（包括拟牛顿法）
（1）从阶数来看。梯度下降法是一阶优化算法，牛顿法是二阶优化算法
（2）从收敛速度来看。牛顿法的收敛速度相比梯度下降法常常较快
（3）从计算速度来看。从牛顿法每次需要更新一个二维矩阵，计算代价很大，实际使用中常使用拟牛顿法
（4）对于神经网络的训练选择。
牛顿法对初始值有一定要求，在非凸优化问题中（如神经网络训练），牛顿法很容易陷入鞍点（牛顿法步长会越来越小），而梯度下降法则很容易逃离鞍点（因此在神经网络训练中一般]]></description><category></category></item><item><title><![CDATA[BERT参数计算]]></title><link>https://blog.csdn.net/dataastron/article/details/107579663</link><guid>https://blog.csdn.net/dataastron/article/details/107579663</guid><author>dataastron</author><pubDate>Sat, 25 Jul 2020 15:46:32 +0800</pubDate><description><![CDATA[参考 https://zhuanlan.zhihu.com/p/144582114小白 
本文计算针对英文版本bert base
bert base 12层 768隐藏单元 12个head 共110M
vocab_size=30522， hidden_size=768， max_position_embeddings=512， token_type_embeddings=2
第 1 部分：输入
Token Embeddings：总词汇是30522每个输出维度都是768，参数量是30522*768
Posit]]></description><category></category></item><item><title><![CDATA[机器学习_SVM学习要点记录]]></title><link>https://blog.csdn.net/dataastron/article/details/107579491</link><guid>https://blog.csdn.net/dataastron/article/details/107579491</guid><author>dataastron</author><pubDate>Sat, 25 Jul 2020 15:37:24 +0800</pubDate><description><![CDATA[对于任意支撑向量




核函数



高斯核函数rbf




]]></description><category></category></item></channel></rss>