机器学习 数据分析1

特征的预处理:对数值型的数据进行处理

无量纲化:
在机器学习算法实践中,我们往往有着将不同规格的数据转换到同一规格,或不同分布的数据转换到某个特定分布的需求这种需求统称为将数据“无量纲化"譬如梯度和矩阵为核心的算法中,譬如逻辑回归,支持向量机,神经 网络,无量纲化可以加快求解速度:而在距离类模型,譬如K近邻,K-Means聚类中,无量纲化可以帮我们提升模型精度,避免某一个取值范围特别大的特征对距离计算造成影响。(一个特例是决策树和树的集成算法们,对决策树我们不需要无量纲化,决策树可以把任意数据都处理得很好。)
那么预处理就是用来实现无量纲化的方式。
含义: 特征抽取后我们就可以获取对应的数值型的样本数据啦,然后就可以进行数据处理了

概念:通过特定的统计方法(数学方法),将数据转换成算法要求的数据

方式:
归一化


标准化

2023.7.17

Onehot编码

特征抽取主要目的就是对非数值型的数据进行特征值化

 文本特征抽取

2023.7.19

Filter过滤式(方差过滤)

 

 

数据集划分的API

from skiearn.model_selection import train_test_split

train_test_split(x,y,test_sizerandom_state)

参数介绍:

x;特征

y:目标

test_size:测试集的比例

random_state:打乱的随机种子

返回值:训练特征,测试特征,训练目标,测试目标

  2023.7.20

 KNN算法 算距离

 二维:

a[xa,ya] b[xb,yb]

距离=((xa-xb)**2+(ya-yb)**2)**0.5

 学习曲线寻找最优k值

 简化数据集的技术,低纬度去表示高纬度的物体时,一定会造成一些信息的差异。可以让低纬度也可以能正确的表示高纬度的事物,让信息差异最小。

目的:特征数量达到上百,上千的时候,考虑数据的优化。使数据维度压缩,尽可能降低源数据的维度(复杂度),损失少量信息。

作用:可以削减回归分析或者聚类分析中特征的数量

2023.7.21

数据清洗
重复值、缺失值、格式调整
异常值处理(比如: 销售金额存在等于0的,属于异常等)

2023.7.24

1.交叉验证

K折交叉验证会把样本数据随机的分成K份(一般是均分),每次随机的选择K-1份作为训练集,剩下的1份做测试集。当这一轮完成后,重新随机选择K-1份来训练数据。最后我们来选择最优的模型以及参数。

对于KFold Cross Validation,能减少train_split_test一次随机划分带来的偶然性,最终提高模型的泛化能力

 

cv=None,默认等于5,含义是从中随机选择4个作为训练集,另1个是测试集

 找到最优的k值寻找前面的内容,结合这一节实现交叉验证

 Shuffle可以防止训练过程中的模型抖动,有利于模型的健壮性

 2.线性推导 最优解的详细推导过程

 

 

 3.回归模型评价指标

①是否预测到正确的值或是否预示到接近正确值

均值误差(MSE):预测值f(x)与目标值y之间差值平方和的均值,其公式如下所示:

在sklearn当中,我们有两种方式调用这个评估指标: 一种是使用sklearn专用的模型评估模块metrics里的类mean_squared_error 另一种是调用 交叉验证的类cross_val_score并使用里面的scoring参数来设置为: neg_mean_squared error使用均方误差

 ceof_系数w

 train_test_split()函数划分训练集和测试集

平均绝对误差(MAE):目标值与预测值之差绝对值和的均值

 ②是否拟合到足够信息

 4.过拟合与欠拟合

 

 房价预测拟合效果不好 解决方式 增加项数 拟合效果比线性方程效果好

预测房价

2023.7.25

1.岭回归(过拟合如何处理)

 岭回归的优点:

获取的回归系数更符合实际更可靠

在病态数据(异常值多的数据)偏多的研究中有更大的存在意义

 2.朴素贝叶斯算法

 P(A1,A2|B)意味着在事件B发生,A1、A2发生的概率

2022.7.26

1.高斯模型

 高斯模型实现手写数字识别

predict_log_proba()其实会跟predict的预测结果不一致,所以并不是最大的就是分类结果

【已解决】sklearn svm的predict和proba输出结果不一样的原因_svm输出的概率和分类结果不一致_Shawn向陽的博客-CSDN博客

svm是支持向量机的一种算法 

2023.7.27

1.多项式模型

 出现某个类别概率为0,该如何处理

 

 alpha一般不用进行改动

 多项式实现文章分类

 作用于鸢尾花分类中

(没有用上面的tf,因为数据都是数值类型,所以不需要像上面一样使用tf) 

 2023.7.28

1.sigmoid函数

回归模型实现分类效果:用sigmoid函数

 sigmoid函数只能趋近于0或1,但不能等于0或1

逻辑回归的优点

 2.逻辑回归的损失函数

 3.梯度下降

线性回归中:最小二乘法减少损失,求出最优解w

逻辑回归:梯度下降

梯度下降的具体算法实现过程是:

1.确定模型的假设函数和损失函数

2.相关参数的初始化,包括:参数、算法终止距离和步长

3.确定当前位置损失函数的梯度

4.用步长乘以梯度,得到当前位置下降的距离

5.确定是否所有参数梯度下降的距离都小于算法终止距离,如果小于算法终止,否则进行下一步

6.更新所有参数,更新完毕转到步骤1

当目标函数是凸函数时,梯度下降法的解是全局最优解,这是没有问题的。但是在很多情况下,我们通过梯度下降到达的不一定是全局最低点,而是局部最低点,如下图所示,分别从A点和B点出发,通过若干次迭代后,分别落于全局最低点和局部最低点。

2023.7.30

1.正则化

 

C越小,压缩的结果就会越小或者越明显,很多都趋向于0,L1能等于0,但是L2不行

 2.WOR和IV

IV和WOE通常是用在对模型的特征筛选的场景中,在模型刚建立时,选择的变量往往比较多,这个时候就需要有一种方法来帮助我们衡量什么变量应该进入模型什么变量应该舍弃,IV和WOE就可以帮助我们进行衡量。用IV和WOE值来进行判断,值越大就表示该特征的预测能力越强,则该特征应该加入到模型的训练中。

WOE(Weight Of Evidence) 用来衡量特征的预测强度,要使用WOE的话,首先要对特征进行分箱(分组: 将一种特征的组成元素进行分组),分箱之后,对于其中第i组的WOE值公式如下:

其中,py_i表示该组中的正例占负例样本的比例,pn_i表示整体的正例占负例样本的比例

 IV

 IV值在计算的时候,比WOE值多考虑了一层该变量下该分组占该变量下所有样本的比例

把上面的IV1,V2,IV3,V4加起来,就是这个变量的IV值,然后把所有变量的IV值都算出来,就可以根据V值的大小来看出变量的预测能力。

2023.7.31

分箱
数据分箱(也称为离散分箱或分段)是一种数据预处理技术,用于减少次要观察误差的影响,是一种将多个连续值分组为较少数量的“分箱”的方法,就是将连续型特征进行离散化

注意:

分箱的数据不一定必须是数字,它们可以是任何类型的值,如“狗”,“猫”,“仓鼠”等。分箱也用于图像处理,通过将相邻像素组合成单个像素,它可用于减少数据量。

分箱的作用

离散特征的增加和减少都很容易,易于模型的快速迭代,提升计算速度

特征离散化后,模型会更稳定,比如如果对用户年龄离散化,20-30作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人。

特征离散化以后,起到了简化了模型的作用,可以适当降低了模型过拟合的风险。

pandas实现数据的分箱:pd.cut()

分箱方式一

方式二 

注意:我们对特征进行分箱后,需要对分箱后的每组(箱)进行woe编码,然后才能放进模型训练。

 

 

 先转成字典,然后woe所返回的结果值来表示我们的离散结果

2023.8.1

1.样本类别分布不均衡

什么是样本类别分布不均衡
.举例说明,在一组样本中不同类别的样本量差异非常大,比如拥有1000条数据样本的数据集中,有一类样本的分类只占
有10条,此时属于严重的数据样本分布不均衡。
样本类别分布不均衡导致的危害?
样本类别不均衡将导致样本量少的分类所包含的特征过少,并很难从中提取规律;即使得到分类模型,也容易产生过度依赖与有限的数据样本而导致过拟合问题,当模型应用到新的数据上时,模型的准确性会很差
解决方法:
通过过抽样和欠抽样解决样本不均衡

2023.8.2

过抽样

通过增加分类中少数类样本的数量来实现样本均衡,比较好的方法有SMOTE算法

SMOTE算法原理介绍:

简单来说smote算法的思想是合成新的少数类样本,合成的策略是对每个少数类样本a,从它的最近邻中随机选一个样本b,然后在a b之间的连线上随机选一点作为新合成的少数类样本

 

 

 变成190个,让样本分布更均匀

2.欠抽样

欠抽样(under-sampling):通过减少分类中多数类样本的数量来实现样本均衡
from imblearn.under_sampling import RandomUnderSampler

2023.8.7

1.混淆矩阵

概念: 在分类任务下,预测结果(Predict Condition) 和真实结果(True Condition) 之间存在的四种不同的组合。适用于二分类和多分类
例子: 设计一个二分类的场景,将图片分类为猫或者狗。则:

真正例 (TP) :本来是猫结果预测值为猫的比例
伪正例 (FP):本来不是猫结果预测值为猫的比例
伪反例 (FN): 本来是猫结果预测值为不是猫的比例
真反例(TN) :本来不是猫结果预测值为不是猫的比例
真正例率TPR=TP/(TP+FN)
预测为正例且实际为正例的样本占所有训练集中为正例样本的比例

将正例预测对的占正样本的比例 (预测对的比例),这个比例越大越好
伪反例率FRR=FP/(FP+TN)预测为正例但实际为负例的样本占训练集中所有负例样本的比例

将负例预测错的占负样本的比例 (预测错的比例),这个比例越小越好

 注意:如果有其他的类别,其他的每一个类别也有其对应的混淆矩阵表示真伪正例和真伪反例的比例

2.分类模型的评论指标

 准确率
Accuracy = (TP+TN)/(TP+FN+FP+TN)

解释:(预测正确)/(预测对的和不对的所有结果),简而言之就是预测正确的比例,模型score()方法返回的就是模型的准确率

召回率 (较多被使用)
Recal = TP/(TP+FN)

解释: 真正为正例的样本中预测结果为正例的比例。正样本有多少被找出来了 (召回了多少)

例子:医院预测一个病人是否患有痛症。假设有100个测试样本(10个癌症患者,90个非癌症患者),最终预测结果为个癌症患者,94个非癌症患者。召回率就是在10癌症患者中预测正确多少个,或者说在癌症患者中预测出癌症患者的比例(预测出的症患者/所有癌症患者 (预测正确的+预测错误的)

使用场景:

是否患癌症

产品是否为残次品
APl:recall_score

精确率

Precision = TP/(TP+FP)

解释: 预测结果为正例样本(TP+FP) 中真实值为正例 (TP) 的比例。本来是猫预测也为猫/(本来是猫预测也为猫+本来不是猫预测为猫

APl:accuracy_score

f1-score 

 AUC

 

2023.8.10

1.数据排序和排名

 

 2.数据格式化

 apply()、map0)、applymap()的区别

apply:

· 既可以用在DataFrame,也可以用到单独的Series中

· 运用到DataFrame时,是用到了整行或者整列上,不是逐一运用到每个元素上

· 运用到Series时,作用到每个元素上

· 第一个参数只接收python原生函数或者numpy中的函数

map

· 只能运用到Series的每个元素上

· 参数可以是函数也可以是字典,还可以是序列

applymap

· 只能应用在DataFrame中,并且是作用在DataFrame的每个元素中

· 参数只接收可调用的函数

2023.8.21

sklearn.datasets如何查看列名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值