实训第五天2022/7/15

8:00-9:00    -23

线性回归算法

------------------------------------------------

#线性回归
from sklearn import linear_model
linear = linear_model.LinearRegression()

# 训练得到linear模型
linear.fit(X, y)    #X四个特征值

# 对训练结果进行评估得分
print("training score: ",linear.score(X, y))

# 显示训练得到的模型参数
# y = wx + b
print(linear.coef_) #系数   4元一次方程
print(linear.intercept_) #截距

# 使用训练出来的linear模型做预测
print("predict: ",linear.predict([[7, 5, 2, 0.5], [7.5, 4, 7, 2]]))

------------------------------------------------

母程序,训练fit出模型linear,用模型预测

w、b首先随机,不断学习,周期不定,到准确

y'=wx+b,y'与y近似时,就停止,确定好w、b

线性回归算法解决分类问题

 

特征工程:可视化方式、降维方式

 

10:00-11:00  -24

 

 性能指标:均方根误差

 

 

 

 11:00-12:00   -25

线性回归:特征组合训练

折线图plot()

作业:

 

 

 

 

 

 

 逻辑回归:二分类问题的专用方法

支持向量机

 

 

 

 

14:00-15:00  -26

支持向量机

支持向量:边界数据

分类器

核函数:将数据映射到高维空间

 

 

 

 线性核函数

多项式核函数

高斯核函数

sigmoid核函数

 

 

径向基函数:

 

 

 

 15:00-16:00    -27 

 线性核函数  kernel='linear'

 

决策树

 

 

 

 

 

 ID3算法

 

 

 此数据集包含14个样本,类别为二元的,即K = 2。其中正例(类别为1的样本)占的比例为:

P1 = 9/14;反例(类别为0的样本)占的比例为: P2 = 5/14 。

根据信息熵的公式计算出数据集D的信息熵为:
E(S) = -[(9/14)log2(9/14) + (5/14)log2 (5/14)] = 0.94

注意:这里通常将对数的底数设置为2。这里共有14个“yes/no”。
其中有9个是“yes”,5个“no”。在此基础上,计算出了上面的概率。

 

 

作业:
根据上表来计算加权平均熵,即已经计算出的每个特征的权重总和乘以概率。
E(S, outlook) = (5/14)*E(3,2) + (4/14)*E(4,0) + (5/14)*E(2,3)
= (5/14)(-(3/5)log2(3/5)-(2/5)log2(2/5))+ (4/14)(0) + (5/14)((2/5)log2(2/5)-(3/5)log2(3/5))
= 0.693
下一步是计算信息增益,它是上面计算的父节点的熵与加权平均熵之间的差:
IG(S, outlook) = 0.94 - 0.693 = 0.247
同样方式,计算温度(Temperature)、湿度(Humidity)和风力(Wind)的信息增益
IG(S, Temperature) = 0.940 - 0.911 = 0.029
IG(S, Humidity) = 0.940 - 0.788 = 0.152
IG(S, Windy) = 0.940 - 0.8932 = 0.048

温度:hot\mild\cool

 

 16:00-17:00  -28

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

作业:(接上)

使用CART算法分类的过程与ID3算法类似,但是使用基尼不纯度来替代熵作为度量标准。

第一步我们需找到决策树的根节点,为此需计算因变量的基尼不纯度。 
Gini(S) = 1 - [(9/14)² + (5/14)²] = 0.4591

下一步,我们将计算基尼增益(Gini Gain)
计算基尼增益,我们要找到天气预报(Outlook)、温度(Temperature)、湿度(Humidity)和风力(Wind)的加权平均基尼不纯度。
首先考虑天气预报(Outlook)

首先考虑天气预报(Outlook)
Gini(S, outlook) = (5/14)gini(3,2) + (4/14)*gini(4,0)+ (5/14)*gini(2,3)
= (5/14)(1 - (3/5)² - (2/5)²) + (4/14)*0 + (5/14)(1 - (2/5)² - (3/5)²)
= 0.171+0+0.171 = 0.342
Gini gain(S, outlook) = 0.459 - 0.342 = 0.117

同样地:
Gini gain(S, Temperature) = 0.459 - 0.4405 = 0.0185
Gini gain(S, Humidity) = 0.459 - 0.3674 = 0.0916
Gini gain(S, windy) = 0.459 - 0.4286 = 0.0304

在上面的计算结果中,我们需要选择一个具有最高基尼增益的特征。
从结果来看,天气预报(outlook)的基尼增益为0.117,是最高的,
因此我们选择天气预报(outlook)作为我们的根节点。 

接下来的操作,即重复我们在ID3算法中的相同步骤(需要大家给出中间的计算步骤和结果),
只是用基尼增益计算替代信息熵和信息增益计算。
最终,我们可以得到如下的决策树:

 

posted @ 2022-07-16 09:06  菜鸟飞飞怕怕  阅读(25)  评论(0编辑  收藏  举报