3681-邹同学-Python学科-数据分析 扫二维码继续学习 二维码时效为半小时

(0评价)
价格: 免费

交叉验证()

1、观察模型稳定性的一种方法,避免测试集训练集划分导致模型不同

2、数据分为n份,依次把其中一份作为测试集,其他为训练集,交叉验证n次求平均值

3、model_selection.cross_val_score的五个参数

1)任何实例化的算法模型

2)不需划分测试集、训练集的特征矩阵

3)不需划分的完整标签

4)cv=10,做十次交叉验证,数据划分为十份,每次一份为测试集,剩下为训练集,通常选5,默认为5

5)scoring="neg_mean_squared_error",neg_mean_squared_error负均方误差。用这个指标评估交叉验证的结果。不填,回归默认返回R平方

1、回归问题处理的是连续型变量

[展开全文]
3077_Yuki · 2022-07-03 · 自由式学习 0

交叉验证(model_selection.cross_val_score)

1、观察模型稳定性的一种方法,避免测试集训练集划分导致模型不同

2、数据分为n份,依次把其中一份作为测试集,其他为训练集,交叉验证n次求平均值

1、回归问题处理的是连续型变量

[展开全文]
3077_Yuki · 2022-07-03 · 自由式学习 0

回归树

一、参数、属性、接口几乎和分类树相同)

二、回归树没有标签分布均衡问题,没有class_weight

三、参数criterion差异

1、="mse",均方误差

1)父节点和子节点均方误差的差额,本质是样本真实数据和回归结果的差异。

2)在回归树中,MSE是分枝质量衡量指标、回归树回归质量衡量指标。越小越好。

3)回归树接口score返回的是R平方,不是MSE,取值为负无穷到1,MSE总为正,sklearn中为负值

2、="friedman_mse",费尔德曼均方误差

3、="mae",绝对平均误差

[展开全文]
3077_Yuki · 2022-07-03 · 自由式学习 0

四、目标权重参数(用的少)

控制目标权重,保持样本标签平衡(不平衡:某类标签占比大,决策树会向占比大标签偏移)

1、class_weight

1)给少量标签更多权重,参数默认None(所有标签相同权重)

2、min_weight_fraction_leaf

1)基于权重的剪枝参数,比min_samples_leaf更偏向主导类

2)样本加权使用此参数剪枝

 

重要接口

1、fit训练,score

2、apply测试样本叶子节点索引,predict返回测试样本分类或回归标签结果(只输入训练集特征,不需要标签y)

注:所有接口中要求输入x_test或x_train部分必须输入二维矩阵,不接受任何一维矩阵输入,若数据只有一个样本,reshape(-1,1)增维

[展开全文]
3077_Yuki · 2022-07-03 · 自由式学习 0

4、max_features

1)限制分枝考虑的特征个数

2)用于高维数据,防止过拟合

3)缺点:强行设定会导致模型学习不足。

4)如果希望通过降维防止过拟合,最好使用PCA,ICA中的降维算法

5、min_impurity_decrease

1)限制信息增益的大小,信息增益小于指定数值的分枝不会发生

2)信息增益:父节点和子节点信息熵的差(子节点信息熵一定小于父节点信息熵),越大,这一层分枝对决策树贡献越大

注:

1)如何确定最优的剪枝参数?画出超参数学习曲线

2)剪枝参数不一定能提升模型在测试集上的表现

[展开全文]
3077_Yuki · 2022-07-03 · 自由式学习 0

三、剪枝参数:正确剪枝是优化决策树算法的核心

注:剪枝后准确度不下降,保留剪枝参数,避免重复计算;准确度下降,注掉参数

1、max_depth:限制树的最大参数

高维度、低样本量非常有效,从=3开始尝试,看拟合效果再增加深度

2、min_sample_leaf

1)一个节点在分枝后,每个节点至少包含min_sample_leaf个训练样本samples

2)一般和max_depth搭配使用

3)太小:过拟合,太大:阻止模型学习数据

4)从=5开始使用;

训练集测试集划分不平衡:输入浮点数(含义为样本总量*小数);

类别不多,=1通常最好

3、min_sample_split

1)一个节点至少min_sample_split个样本才被允许分枝

 

 

[展开全文]
3077_Yuki · 2022-07-03 · 自由式学习 0

控制随机性的两个参数

1、random_state:控制随机模式,使每次结果一致,默认为None

决策树高维随机性明显,低维度数据集随机性不会显现

2、splitter:控制随机性,可以与random_state同时设置,如果设置了反而准确度降低则不写

1)="best",默认,分枝随机,但会优先选更重要特征进行分枝

2)="random",更随机,决策树会更深,拟合程度更低(防止过拟合)

 

[展开全文]
3077_Yuki · 2022-07-03 · 自由式学习 0

决策树重要参数

1、criterion:决定不纯度计算方法

entropy信息熵,gini基尼系数

  • 通常使用gini(默认)
  • 维度低、数据清晰:没区别(信息熵慢一点)
  • 高维、噪音多的数据:gini(信息熵容易过拟合)
  • 决策树欠拟合:信息熵

不纯度:

  • 衡量最佳(决策树要找最佳节点和最佳分支方法),越低,决策树对训练集的拟合越好
  • 每个节点一个不纯度,子节点低于父节点(同一决策树,叶子节点的不纯度最低)
[展开全文]
3077_Yuki · 2022-07-03 · 自由式学习 0

数据标准化:数据按照均值中心化后,再按标准差缩放,数据就会变成均值为0方差为1的正态分布

API:from sklearn.preprocessing import StandardScaler

[展开全文]

特征工程:

去中心化:让所有记录减去一个固定值。

数据归一化:把数据按照最小值中心化后再按极差缩放,然后被收敛到0-1之间

preprocessing.minmax

[展开全文]

选择行,

选择列

选择行列

 

[展开全文]

hist 直方图

from matplotlib import pyplot as plt

from matplotlib import font_manager

a=[zifuchuan]

plot.hist(a.fenzushu)

细节

计算组数=num_bin= (max(a)-nim(b)//d)

d=5

组数= 极差/组距

x轴的刻度设置

plt.xticks(range(min(a),max(a)+d,d))

plt.show()

图形大小:plt.figure(figsze=(20,8),dpi=80)

{数据}

 

 

 

[展开全文]

数组的形状

shape即可查看数组的各个维度长度(输出按三维二维依次降低,块、行、个)

reshape方法可以重新设置行列,是有返回值的,而不改变本身

有返回值才会输出

结合shape和reshape可以做到在不清楚维度长度的情况下降维

flatten可以将数组展开变成一维

 

数组的计算

numpy数组对数字进行+*-/计算,是对全部单元进行计算

nan>>not a number 0/0

inf>>infinite x/0

数组对数组进行计算:

不同维度的数组进行计算至少有一个维度的长度相同

广播会在缺失或者长度为1的维度上进行(不同维度的计算本质上是广播)

广播原则:如果两个数组的后缘维度,即从末尾开始算起的维度轴长相符,或者某一方的长度为1,即广播jian'r

[展开全文]
Flying_X · 2022-05-22 · 自由式学习 0

一维数组只有0轴,二维有0、1轴,三维有0、1、2轴

reshape(0,1,2),shape输出(2,1,0)

CSV逗号分隔值文件

numpy的读取文件方法

unpack参数实现行列转置

transpose,T,swapaxes(1,0)方法实现行列转置

[展开全文]
Flying_X · 2022-05-22 · 自由式学习 0

numpy的索引和切片

索引从0开始

2:取得连续多行,[[2,5,6]]多一个[]取得不连续的行

:,1取得单列

:,1:取得连续列

:,[]取得不连续列

取得行列交叉的内容

取得不相邻的点

[展开全文]
Flying_X · 2022-05-15 · 自由式学习 0

mysql数据查询

条件查询:

比较条件: > < = != <>   跟在where后面

in 查询 指定一个数据容器

between 表示一个区间  1到10  还可以表示时间范围

null值的判断 如果是一个空值对象的话 用is判断

如果是空字符串的话,则使用 = 判断

排序 order by  【asc升序 desc降序】可以指定多个字段排序;

 

聚合函数:

count()

max()

min()

length()

sum()

avg()

round()

date()

substr()   left right

分组和分页

分组 group by

as 取别名

分组条件的筛选 where having

where 跟在from后面

having跟在group by后面

limit分页 select * from student limit start(起始位置) count(读取数量)

连接查询

内连接:inner join 两种表共同的数据

左连接:left join 参考左边的表为基准查询表,右边的表用null填充;

右连接 right join 参考右边的表为基准查询表,左边的表用null填充

 

子查询

1、标量查询 一行一列查询 单个值

2、列级子查询 一行多列 多个值

3、行级子查询 多行一列

4、表级子查询 多行多列【用来做数据源】

保存查询结果:

insert into 表名 select 查询来充当数据源;

union去重输出

union all 输出多次查询的结果;

[展开全文]

这个老师的逻辑能力和语言组织能力真的是匮乏 前言不搭后语 自己把自己绕进去了

[展开全文]