方差分析

简介: 方差分析

机器学习策略


1.误差分析


当我们在训练一个模型的时候,如一个猫和狗分类模型,最终得到了90 % 90%90%的精确度,即有10 % 10%10%的错误率。所以我们需要对模型的一些部分做相应调整,才能更好地提升分类的精度。

方法:

1.修改哪些被分类成猫的狗狗图片的标签

2.修改哪些错误分类的大型猫科动物

3.提升图片质量(模糊度)


2.显著性检验


示例:ming开了一家王者荣耀公司。公司分别在成都,北京开设分公司,现在知道2020年二个分公司对应每个月的销售额数据,现在ming想知道那个分公司销售额更大

在这里用平均值去比较,不妥,因为这样的销售额出现实质上是偶然造成的,并不是一种必然。

方法:

假设:两个样本集之间不存在任何区别

结果:在显著性水平a=0.05情况下,p>0.05接受原假设,p值<0.05拒绝原假设。

方法:F值=组间方差与组内方差的比值,查表:F实际值>F查表值,则p<=0.05;F实际值<F查表值 则p>0.05


显著性检验:是用于检测科学实验中实验组与对照组之间是否有差异以及差异是否显著的办法。

一般而言,要把检验的假设称之为原假设,记为H0,把H0对应的假设记为H1。


原理


如果原假设为真,而检验的结论却劝你放弃原假设,此时,我们把这种错误称为第一类错误,出现概率记为a

如果原假设不真,而检验的结论却劝你不要放弃原假设,此时第二类错误,出现概率记为b

通常只限定犯第一类错误的最大概率α, 不考虑犯第二类错误的概率β。我们把这样的假设检验称为显著性检验,概率α称为显著性水平。


案例解释


根据ming开设的王者荣耀公司销售额分析

显著性检验分为参数检验和非参数检验,参数检验要求样本来源于正态总体(服从正态分布)


3.方差分析


方差分析又称“变异数分析或者F检验”,用于两个及两个以上的样本均数差别的显著性检验

(1)实验条件:即不同处理造成的差异,称为组间差异,用变量在各组的均值与总均值之间的偏差平方和的总和表示,记为ssb,组间自由度dfb(自由度为样本量-变量个数)

(2)随机误差,如测量误差造成的差异或个体差异,称为组内差异,用变量在各组的均值与该组内变量值之偏差平方总和表示,ssw组内自由度dfw

总偏差平方和sst=ssb+ssw

(3)用ssw和ssw分别除以各自的自由度,得到均方msw,msb,msb/msw构成F分布。

若F值接近1,则说明各组均值间的差异没有统计学意义,若F值远大于1,则说明各组均值间的差异有统计学意义


对于错误标记的样本处理


1.情况一

由于随机误差导致错误标记分类,由于深度学习算法具有好的鲁棒性,这里对这类错误,不需要进行操作

2.情况二

由于系统误差导致错误标记,系统误差即系统一直把同样白色的狗标记为猫。


4.数据集划分问题


留出法(hold-out)


LOO留一发 or LPO 留P法


K-Fold


是否重复试验与分层


交叉验证


#加载数据
from sklearn.model_selection import train_test_split,LeaveOneOut,LeavePOut
from sklearn import datasets
from sklearn import svm
from sklearn.metrics import accuracy_score
import numpy as np
iris=dataset.load_iris()
clf_svc=svm.SVC(kernel='linear')
iris.data.shape,iris.targe.shape
#hold out 
x_train,x_test,y_train,y_test=train.test_split(irsi.data,iris.target,test_size=0.4,random_state=0)
clf_svc.fit(x_trian,y_train)
accuracy_score(clf_svc.predict(x_test),y_test)
#leave one out
loo=LeaveOneOut()
loo.get_n_splits(iris.data)
mean_accuracy_score_list=[]
for train_index,test_index in loo.split(iris.data):
   clf_svc.fit(iris.data[train_index],iris.target[train_index])
   prediction=clf_svc.predict(iris.data[test_index])
 mean_accuracy_score_list.append(accuracy_score(iris.target[test_index],prediction))
 print(np.average(mean_accuracy_score_list))




相关文章
|
存储 JSON NoSQL
Centos7下安装MongoDB
Centos7下安装MongoDB
586 0
Centos7下安装MongoDB
|
NoSQL Linux Redis
在Windows下使用msys2编译最新版的Redis
在Windows下使用msys2编译最新版的Redis
1710 0
|
8月前
|
算法
学会二分法,有这一篇就够啦!
本文由blue撰写于2024年9月,深入讲解二分法这一基础但不简单的算法。文章从二分法的两大经典应用场景——二分查找与二分答案出发,详细解析其原理与实现。通过实例代码(如LeetCode第704题)和竞赛题目,探讨了不同区间定义(左闭右闭、左闭右开)下的实现方式,并延伸到寻找目标值首次/最后出现位置及二分答案的实际应用。适合初学者系统掌握二分法的核心思想与技巧。
978 17
|
存储 运维 Kubernetes
K8s业务迁移最佳实践: 灵活管理资源备份与调整策略,实现高效简便的应用恢复
在当今快速变化的云原生领域,Kubernetes(K8s)集群的运维面临着诸多挑战,其中灾备与业务迁移尤为关键。ACK备份中心支持丰富的资源调整策略,在数据恢复阶段即可自动适配目标集群环境,确保业务无缝重启。
|
测试技术 C# 开发工具
C# 标准性能测试
本文介绍如何使用 BenchmarkDotNet 工具进行性能测试。通过 GitHub 代码示例展示如何安装并应用此工具,对函数或静态方法进行精确的性能分析。首先需通过 NuGet 安装 BenchmarkDotNet,然后在测试函数上添加 `[Benchmark]` 特性,并使用 `BenchmarkRunner.Run&lt;&gt;();` 进行测试。测试过程中包括 Pilot、Warmup 和 Target 等阶段,并提供 Mean、Error 和 StdDev 等统计信息。
253 3
C# 标准性能测试
|
编解码 并行计算 JavaScript
Nodejs 第十六章(ffmpeg)
Nodejs 第十六章(ffmpeg)
359 0
|
canal 搜索推荐 关系型数据库
docker环境安装mysql、canal、elasticsearch,基于binlog利用canal实现mysql的数据同步到elasticsearch中(三)
docker环境安装mysql、canal、elasticsearch,基于binlog利用canal实现mysql的数据同步到elasticsearch中
484 0
|
SQL Oracle 关系型数据库
关系型数据库Oracle结束 RMAN 会话:
【7月更文挑战第25天】
400 1
|
Rust 编译器
Rust代码组织:Package、Crate、Module
Rust代码组织:Package、Crate、Module
311 0
|
XML Java Android开发
Android App开发动画特效之利用滚动器实现平滑翻页(附源码和演示 简单易懂)
Android App开发动画特效之利用滚动器实现平滑翻页(附源码和演示 简单易懂)
412 0
Android App开发动画特效之利用滚动器实现平滑翻页(附源码和演示 简单易懂)