Skip to content

Commit feac1e6

Browse files
committed
1~5
1 parent 6c2a169 commit feac1e6

File tree

7 files changed

+146
-0
lines changed

7 files changed

+146
-0
lines changed

code/convolution_kernel.py

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import numpy as np
2+
a = np.array([[1,2],[3,4]])
3+
b = np.array([[5,6],[7,8]])
4+
print(np.dot(a,b))
5+
print(a*b)
6+
print(np.sum(a*b))

code/info.py

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import math
2+
print ("小明不知道选择题ABCD哪个选项时的熵 : ", math.log(4,2))
3+
print ("告诉小明C有一半几率是正确提供的信息 : ", math.log(4,2)-(1/6*math.log(6,2)+1/6*math.log(6,2)+1/2*math.log(2,2)+1/6*math.log(6,2)))
4+
print ("小明知道C有一半几率是正确后的熵 : ", 1/6*math.log(6,2)+1/6*math.log(6,2)+1/2*math.log(2,2)+1/6*math.log(6,2))

day1.md

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
数据集分隔方法:留出法,交叉验证(k 折交叉验证),自助法
2+
训练集,验证集,测试集
3+
训练集训练,通过验证集验证,根据反馈进行反复调参,得到最终模型;测试集用来检查训练效果
4+
5+
accuracy 精度,准确度
6+
7+
T:true
8+
F:false
9+
precision 查准率:针对a分类,有多少比例被预测出来or我预测为a的结里对的占多少比例;我预测是对的分两种(分母): Ta,Fa
10+
recall 查全率:针对a分类,我预测正确的占所有a分类样本的比例。实际是对的分两种(分母):Ta,Fx
11+
12+
13+
为何需要查全率,因为样本分布不均衡,多分类问题,0~9 数字识别,识别是否是 3,及时是一个垃圾模型让输出结果都不是 3,准确率仍有 90%
14+
查准率与查全率一般情况有反向变动关系,查准率越高,相应的查全率就会降低;反过来也一样
15+
16+
cnn相关概念:卷积核(一般 3x3,5x5),步长(每次移动的幅度),深度(观察的角度),填充值(解决无法覆盖的特征)

day2.md

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
查准率与查全率一般情况有反向变动关系,查准率越高,相应的查全率就会降低;反过来也一样
2+
那么问题来了,如何定义最优?
3+
1.平衡点 p=r的点
4+
2.F1
5+
3.Fbeta
6+
7+
8+
F1 为何选用调和平均数?各种解释似乎都在告诉我,没有更好的选择。。。
9+
就是当a和b很接近的时候,调和平均数和算术平均数很接近,但是两者偏离的话,就远小于算术平均数了。
10+
调和平均数受极端值影响较小,更适合评价不平衡数据的分类问题
11+
12+
Fbeta,通过beta的值控制查全率和查准率对 F 值的影响度
13+
14+
模型评估:
15+
P-R 曲线:
16+
曲线交叉时:1.算面积,2.F1,3.Fbeta
17+
大部分肉眼可以判断好坏 😁
18+
19+
代价曲线😵😵😵
20+
ROC 曲线😵😵😵
21+
AUC😵😵😵
22+
😵😵😵😵
23+
什么玩意儿?
24+
25+
假设检验,二项分布,T分布 。我学的概率论终于用上了
26+
27+
28+
今天主要学习西瓜书第二章,很多地方看了不下十遍也不能理解,有些地方理解之后给我的感觉就是,用例子很容易说清楚,但很难沉淀出具体定义,然而前人真的总结出了公式,公式吓死人,导致学习者恶性循环

day3.md

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
线性模型:
2+
3+
线性回归
4+
假设有d个变量,知道 x 值与对应的 y 值,求每个变量对应的权重 w
5+
fx=w1x1+w2x2+…+wdxd
6+
7+
导数是用来反映函数局部性质的工具。 一个函数在某一点的导数描述了这个函数在这一点附近的变化率。如果函数的自变量和取值都是实数的话,函数在某一点的导数就是该函数所代表的曲线在这一点上的切线斜率。导数的本质是通过极限的概念对函数进行局部的线性逼近
8+
9+
梯度下降法
10+
往斜率的反方向移动
11+
loss=|预测值-目标值|min
12+
初始化一个𝜽,求导,如果导数大于 0,𝜽减小一定值;如果导数小于 0,𝜽增大一定值,直到导数接近于 0,这个𝜽就是令 loss 最小的目标值
13+
𝜽每次变化一定值,被称为学习率,过大过小都是影响很大,确定方法:
14+
1.网格搜索,设 n 次,分别计算,比较结果选择最优
15+
2.梯度限制,设置目标梯度向量值,无限迭代计算梯度向量值,直到结果小于目标向量值
16+
17+
局部最优和全局最优,暂时没找到什么好办法
18+
19+
20+
算法优劣
21+
时间长短,是否需要额外的空间
22+
Big O
23+
随着问题规模的扩大,时间和空间变化的规律,最差的情况
24+

day4.md

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
决策树:
2+
根节点,内部节点,叶子节点
3+
4+
树的选择:
5+
信息增益
6+
增益率
7+
基尼指数
8+
9+
解决过拟合问题:剪枝处理,预剪枝,后剪枝
10+
11+
数据=信息+噪音
12+
信息:
13+
1.消除不确定性
14+
2.调整概率
15+
3.排除干扰
16+
4.确定情况
17+
----------------------------------
18+
熵的量化:
19+
1.均匀分布
20+
2.一般分布,各种情况概率不同
21+
22+
信息的量化
23+
24+
import math
25+
print ("小明不知道选择题ABCD哪个选项时的熵 : ", math.log(4,2))
26+
print ("告诉小明C有一半几率是正确提供的信息 : ", math.log(4,2)-(1/6*math.log(6,2)+1/6*math.log(6,2)+1/2*math.log(2,2)+1/6*math.log(6,2)))
27+
print ("小明知道C有一半几率是正确后的熵 : ", 1/6*math.log(6,2)+1/6*math.log(6,2)+1/2*math.log(2,2)+1/6*math.log(6,2))
28+
29+
小明不知道选择题ABCD哪个选项时的熵 : 2.0
30+
告诉小明C有一半几率是正确提供的信息 : 0.20751874963942218
31+
小明知道C有一半几率是正确后的熵 : 1.7924812503605778
32+
33+
补充知识:
34+
1.为什么计算熵时对数底数是 2。因为熵的单位是 bit
35+
2.一般分布的计算公式 p*log(1/p,2)求和,p 是出现的概率
36+
37+
信息增益:对各个因素计算信息量(信息增益),信息量大的优先作为分类条件;分类后重复之前步骤即针对各个分类计算其他因素的信息增益
38+
然而 信息增益对可取值数目较多的属性(因素)有所偏好,为了解决这个问题,出现了增益率,具体实现需要研究论文,大概意思是除以一个数字,这个数字随着属性可取值数目增多会增大,进行抑制
39+
40+
具体使用方式:
41+
第一步使用信息增益得到排名靠前的属性
42+
第二步针对得到的属性,计算增益率,选择增益率高的属性
43+
44+
基尼指数
45+
有放回的取两个样本,两个不同的概率
46+
47+
具体使用方法:
48+
第一步根据各种属性分别做二分类
49+
第二步计算各个二分类的基尼指数
50+
第三步取基尼指数最小的属性作为根分类
51+
第四步在之前分类的基础上计算各个分类基尼指数,如果下降继续分类,如果上升停止分类
52+
第五步如果某分类下样本数量小于预定义的值(根据个人情况设置),则停止分类
53+
54+
55+

day5.md

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
剪枝处理:处理过拟合
2+
3+
预剪枝
4+
方式:使用训练集根据信息增益准则生成一棵完整树,自上而下,通过上级节点验证集的正确率与所有子节点的正确率比较,判断准确率是否上升,决定是否保留本次的分支
5+
6+
7+
后剪枝
8+
方式:使用训练集根据信息增益准则生成一棵完整树,自下而上,尝试剪掉叶子节点的分类属性,如果验证集正确率上升,则剪掉该枝
9+
10+
11+
多变量决策树:
12+
区别在于针对属性的线性组合进行分类,例如对是否是美女进行预测,正常的分类属性包括大眼,高挑,长腿,肤白,有胡子。而多变量决策树的分类依据可以是:
13+
0.7*大眼+0.6高挑+0.7*长腿+0.9*肤白-2*有胡子

0 commit comments

Comments
 (0)