韩国有哪些专业做汽车的网站,seo是什么职位,在百度怎么创建自己的网站,上海自动化仪表厂IQR方法
基于四分位数#xff1a;使用数据的第一四分位数#xff08;25%#xff09;和第三四分位数#xff08;75%#xff09;来计算。 对称#xff1a;相对于中位数对称地考虑上下界。 受极端值影响#xff1a;如果数据中包含极端值#xff0c;IQR可能会被拉得很大使用数据的第一四分位数25%和第三四分位数75%来计算。 对称相对于中位数对称地考虑上下界。 受极端值影响如果数据中包含极端值IQR可能会被拉得很大导致异常值的检测不够敏感。
MAD方法
基于中位数只考虑中位数和每个点的偏差。 稳健对异常值不敏感特别适合于含有离群点的数据。 非对称只考虑偏离中位数的绝对偏差因此不是关于中位数对称的。
优点比较
对于含有离群点的数据集MAD通常更优因为它对异常值的敏感度低。 对于较为对称分布的数据集IQR可能更优因为它可以更好地反映数据的分散程度。
缺点比较
对于含有极端值的数据集IQR的敏感性可能导致它不如MAD稳健。 对于非对称分布的数据集MAD可能不如IQR好因为它可能不会充分反映数据的实际分布。
总结
IQR方法
基于四分位数使用数据的第一四分位数25%和第三四分位数75%来计算。 对称相对于中位数对称地考虑上下界。 受极端值影响如果数据中包含极端值IQR可能会被拉得很大导致异常值的检测不够敏感。
MAD方法
基于中位数只考虑中位数和每个点的偏差。 稳健对异常值不敏感特别适合于含有离群点的数据。 非对称只考虑偏离中位数的绝对偏差因此不是关于中位数对称的。
优点比较
对于含有离群点的数据集MAD通常更优因为它对异常值的敏感度低。 对于较为对称分布的数据集IQR可能更优因为它可以更好地反映数据的分散程度。
缺点比较
对于含有极端值的数据集IQR的敏感性可能导致它不如MAD稳健。 对于非对称分布的数据集MAD可能不如IQR好因为它可能不会充分反映数据的实际分布。
总结
如果数据集受到极端值的影响较大或者含有大量的重复值MAD可能是一个更好的选择。 如果数据分布较为均匀没有极端的异常值IQR可能会更有用。 四分位数
一组数据按照从小到大顺序排列后把该组数据四等分的数称为四分位数。
第一四分位数 (Q1)、第二四分位数 (Q2也叫“中位数”)和第三四分位数 (Q3)分别等于该样本中所有数值由小到大排列后第25%、第50%和第75%的数字。
第三四分位数与第一四分位数的差距又称四分位距interquartile range, IQR。
偏态
与正态分布相对指的是非对称分布的偏斜状态。在统计学上众数和平均数之差可作为分配偏态的指标之一如平均数大于众数称为正偏态或右偏态相反则称为负偏态或左偏态。
箱形图可以用来观察数据整体的分布情况利用中位数25/%分位数75/%分位数上边界下边界等统计量来来描述数据的整体分布情况。通过计算这些统计量生成一个箱体图箱体包含了大部分的正常数据而在箱体上边界和下边界之外的就是异常数据。 判断数据的偏态和尾重
**对于标准正态分布的大样本**中位数位于上下四分位数的中央箱形图的方盒关于中位线对称。中位数越偏离上下四分位数的中心位置分布偏态性越强。异常值集中在较大值一侧则分布呈现右偏态异常值集中在较小值一侧则分布呈现左偏态。
比较多批数据的形状
箱子的上下限分别是数据的上四分位数和下四分位数。这意味着箱子包含了50%的数据。因此箱子的宽度在一定程度上反映了数据的波动程度。箱体越扁说明数据越集中端线也就是“须”越短也说明数据集中。
matplotlib参数详解
plt.boxplot(x, # x指定要绘制箱图的数据notchNone, # notch是否是凹口的形式展现箱线图默认非凹口symNone, # sym指定异常点的形状默认为号显示vertNone, # vert是否需要将箱线图垂直摆放默认垂直摆放whisNone, # whis指定上下须与上下四分位的距离默认为1.5倍的四分位差positionsNone, # positions指定箱线图的位置默认为[0,1,2…]widthsNone, # widths指定箱线图的宽度默认为0.5patch_artistNone, # patch_artist是否填充箱体的颜色meanlineNone, # meanline是否用线的形式表示均值默认用点来表示showmeansNone, # showmeans是否显示均值默认不显示showcapsNone, # showcaps是否显示箱线图顶端和末端的两条线默认显示showboxNone, # showbox是否显示箱线图的箱体默认显示showfliersNone, # showfliers是否显示异常值默认显示boxpropsNone, # boxprops设置箱体的属性如边框色填充色等labelsNone, # labels为箱线图添加标签类似于图例的作用flierpropsNone, # filerprops设置异常值的属性如异常点的形状、大小、填充色等medianpropsNone, # medianprops设置中位数的属性如线的类型、粗细等meanpropsNone, # meanprops设置均值的属性如点的大小、颜色等cappropsNone, # capprops设置箱线图顶端和末端线条的属性如颜色、粗细等whiskerpropsNone) # whiskerprops设置须的属性如颜色、粗细、线的类型等
import matplotlib.pyplot as plt
import numpy as npnp.random.seed(100)
data np.random.normal(size(1000,4),loc0,scale1)ax plt.subplot()
ax.boxplot(data) # 绘图
ax.set_xlim([0,5]) # 设置x轴值的范围 rotation30
# ax.set_xticks() # 自定义x轴的值
ax.set_xlabel(xlabel) # 设置x轴的标签
ax.set_xticklabels([A,B,C,D], rotation30,fontsize10) # 设置x轴坐标值的标签 旋转角度 字体大小
ax.set_title(xcy) # 设置图像标题
ax.legend(labels [A,B,C,D],locbest,) # 增加图例
ax.text(x0.2 , y3.5 , stest ,fontsize12) # 增加注plt.show()
seaborn参数讲解 x, y, hue数据或向量数据中的变量名称 用于绘制长格式数据的输入。 dataDataFrame数组数组列表 用于绘图的数据集。如果x和y都缺失那么数据将被视为宽格式。否则数据被视为长格式。 order, hue_order字符串列表 控制分类变量对应的条形图的绘制顺序若缺失则从数据中推断分类变量的顺序。 orient“v”或“h” 控制绘图的方向垂直或水平。这通常是从输入变量的 dtype 推断出来的但是当“分类”变量为数值型或绘制宽格式数据时可用于指定绘图的方向。 colormatplotlib颜色 所有元素的颜色或渐变调色板的种子颜色。 palette调色板名称列表或字典 用于hue变量的不同级别的颜色。可以从color_palette()得到一些解释或者将色调级别映射到matplotlib颜色的字典。 saturationfloat 控制用于绘制颜色的原始饱和度的比例。通常大幅填充在轻微不饱和的颜色下看起来更好如果您希望绘图颜色与输入颜色规格完美匹配可将其设置为1。 widthfloat 不使用色调嵌套时完整元素的宽度或主要分组变量一个级别的所有元素的宽度。 dodgebool 使用色调嵌套时元素是否应沿分类轴移动。 fliersizefloat 用于表示异常值观察的标记的大小。 linewidthfloat 构图元素的灰线宽度。 whisfloat 控制在超过高低四分位数时 IQR 四分位间距的比例因此需要延长绘制的触须线段。超出此范围的点将被识别为异常值。 notchboolean 是否使矩形框“凹陷”以指示中位数的置信区间。还可以通过plt.boxplot的一些参数来控制 axmatplotlib轴 绘图时使用的 Axes 轴对象否则使用当前 Axes 轴对象 kwargs键值映射 其他在绘图时传给plt.boxplot的参数
features_per_row 25# 计算需要绘制的行数
num_rows (data.shape[1] features_per_row - 1) // features_per_row# 对于每个25个特征的区间绘制一个箱形图
for i in range(num_rows):start_col i * features_per_rowend_col min(start_col features_per_row, data.shape[1])data_long pd.melt(data.iloc[:, start_col:end_col])plt.figure(figsize(12, 6), dpi300) # 设定每个图的大小sns.boxplot(xvariable, yvalue, datadata_long)plt.xticks(rotation90) # 旋转x轴标签plt.tight_layout()plt.show()自动识别异常值并删除
IQR版本
for column in df.select_dtypes(include[np.number]).columns:Q1 df[column].quantile(0.25)Q3 df[column].quantile(0.75)IQR Q3 - Q1lower_bound Q1 - 300 * IQRupper_bound Q3 300 * IQR# 确定异常值outliers df[(df[column] lower_bound) | (df[column] upper_bound)]outlier_values outliers[column].valuesif len(outlier_values)0:# 打印结果print(IQR)print(f特征 {column} 的异常值数量: {len(outlier_values)})if len(outlier_values) 0:print(f特征 {column} 的异常值: {outlier_values})else:print(f特征 {column} 没有检测到异常值。)print() MAD版本
dfdata# 定义一个函数来计算MAD
def mad(data, const0.6745):med np.median(data)mad np.median(np.abs(data - med))return mad if mad ! 0 else None# 初始化一个空的索引列表用于存储异常值所在的行
outlier_indices []# 对DataFrame中的每一列应用MAD方法
for column in df.select_dtypes(include[np.number]).columns:median df[column].median()mad_value mad(df[column])# 只有当MAD值大于0.1时才进行异常值检测if mad_value and mad_value 0.1:# 设置一个异常值阈值这里使用的是80倍的MADthreshold 100 * mad_valuelower_bound median - thresholdupper_bound median threshold# 确定异常值outliers df[(df[column] lower_bound) | (df[column] upper_bound)]outlier_values outliers[column].values# 如果找到异常值将它们的索引添加到列表中if len(outlier_values) 0:outlier_indices.extend(outliers.index.tolist())# 打印结果print(f特征 {column} 的MAD值: {mad_value})print(f特征 {column} 的异常值数量: {len(outlier_values)})print(f特征 {column} 的异常值: {outlier_values})print()# 删除异常值所在的行
df_cleaned df.drop(indexset(outlier_indices))print(f删除异常值后的数据行数: {df_cleaned.shape[0]})
每文一语 细致入微