每周碎片知识4

1️⃣[概率校准(Probability Calibration)]
一种对机器学习算法输出结果的校准,通过几个实验可以发现,概率校准能够一定程度提高表现。
几个参考资料:
直观理解: http://www.bubuko.com/infodetail-2133893.html
SVC的概率校准在sklearn上的应用: https://blog.csdn.net/ericcchen/article/details/79337716
✨完全手册: Calibration of Machine Learning Models


2️⃣[Paper]
Hierarchical Attention Networks for Document Classification

亮点在使用层次的RNN结构,以及使用了attention方法。

参考了其他人的代码自己也试着实现了一个,GitHub地址:https://github.com/linzehui/pytorch-hierarchical-attention-network


3️⃣[XGBoost]
kaggle神器XGBoost,一篇原理的详细介绍:
http://www.cnblogs.com/willnote/p/6801496.html
虽然还是有好些地方没搞懂,有必要从头学起。


4️⃣[Python]
关于函数列表中单星号(*)和双星号(**)
单星号:

  • 代表接收任意多个非关键字参数,将其转换成元组:
1
2
3
4
def one(a,*b):
"""a是一个普通传入参数,*b是一个非关键字星号参数"""
print(b)
one(1,2,3,4,5,6) #输出:(2, 3, 4, 5, 6)
  • 对一个普通变量使用单星号,表示对该变量拆分成单个元素
1
2
3
4
def fun(a,b):
print(a,b)
l=[1,2]
fun(*l) #输出 1,2

双星号:

  • 获得字典值
1
2
3
4
def two(a=1,**b):
"""a是一个普通关键字参数,**b是一个关键字双星号参数"""
print(b)
two(a=1,b=2,c=3,d=4,e=5,f=6) #输出{'b': 2, 'c': 3, 'e': 5, 'f': 6, 'd': 4}

5️⃣[Pytorch]
在Pytorch中,只要一个tensor的requires_grad是true,那么两个tensor的加减乘除后的结果的requires_grad也会是true。