python语言九个特点,python语言

首页 > 教育培训 > 作者:YD1662023-06-23 10:00:11

通常,此平均值与整个数据集的结果概率混合,以减少很少出现的值的方差。请务必注意,由于类别值是根据输出值计算的,因此这些计算应在训练数据集上完成,然后应用于其他数据集。否则,我们将面临信息泄漏,这意味着我们将在训练集内包含有关测试集输出值的信息。这将使我们的测试无效或给我们虚假的信心。好吧,让我们看看如何在代码中执行此操作:

categorical_data["species"] = categorical_data["species"].cat.codes island_means = categorical_data.groupby('island')['species'].mean() sex_means = categorical_data.groupby('sex')['species'].mean()

在这里,我们对输出特征使用标签编码,然后计算分类特征""和"性别"的平均值。以下是我们为"岛屿"功能获得的内容:

island_means

island Biscoe 1.473054 Dream 0.548387 Torgersen 0.000000

这意味着值 BiscoeDreamTorgersen 将分别替换为值 1.473054、0.548387 和 0。对于"性别"功能,我们也有类似的情况:

sex_means

sex FEMALE 0.909091 MALE 0.921348

这意味着值 FEMALEMALE 将分别替换为 0.909091 和 0.921348。以下是数据集中的外观:

categorical_data['island_target_enc'] = categorical_data['island'].map(island_means) categorical_data['sex_target_enc'] = categorical_data['sex'].map(sex_means) categorical_data

python语言九个特点,python语言(17)

2.5 省略一个目标编码

我们在本教程中探讨的最后一种编码类型是建立在目标编码之上的。它的工作方式与目标编码相同,但有一个区别。当我们计算样本的平均输出值时,我们排除了该样本。下面是在代码中完成它的方法。首先,我们定义一个执行以下操作的函数:

def leave_one_out_mean(series): series = (series.sum() - series)/(len(series) - 1) return series

然后,我们将其应用于数据集中的分类值:

categorical_data['island_loo_enc'] = categorical_data.groupby('island')['species'].apply(leave_one_out_mean) categorical_data['sex_loo_enc'] = categorical_data.groupby('sex')['species'].apply(leave_one_out_mean) categorical_data

python语言九个特点,python语言(18)

3. 处理异常值

异常值是偏离数据整体分布的值。有时这些值是错误的和错误的测量值,应该从数据集中删除,但有时它们是有价值的边缘情况信息。这意味着有时我们希望将这些值保留在数据集中,因为它们可能携带一些重要信息,而其他时候我们希望删除这些样本,因为信息错误。

简而言之,我们可以使用四分位数间范围来检测这些点。四分位数间范围或 IQR 指示 50% 的数据所在的位置。当我们寻找这个值时,我们首先寻找中位数,因为它将数据分成两半。然后,我们定位数据下端的中位数(表示为Q1)和数据较高端的中位数(表示为Q3)。

Q1Q3 之间的数据是 IQR。异常值定义为低于 Q11.5(IQR) 或高于 Q3 1.5(IQR) 的样本。我们可以使用箱线图来执行此操作。箱线图的目的是可视化分布。从本质上讲,它包括重要点:最大值,最小值,中位数和两个IQR点(Q1,Q3)。以下是箱线图的一个示例:

python语言九个特点,python语言(19)

让我们将其应用于PalmerPenguins数据集:

fig, axes = plt.subplots(nrows=4,ncols=1) fig.set_size_inches(10, 30) sb.boxplot(data=data,y="culmen_length_mm",x="species",orient="v",ax=axes[0], palette="Oranges") sb.boxplot(data=data,y="culmen_depth_mm",x="species",orient="v",ax=axes[1], palette="Oranges") sb.boxplot(data=data,y="flipper_length_mm",x="species",orient="v",ax=axes[2], palette="Oranges") sb.boxplot(data=data,y="body_mass_g",x="species",orient="v",ax=axes[3], palette="Oranges")

python语言九个特点,python语言(20)

上一页12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.