博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
go语言机器学习第三章评估和验证
阅读量:4034 次
发布时间:2019-05-24

本文共 2145 字,大约阅读时间需要 7 分钟。

3.1评估

测量模型如何执行特定数据的过程称为评估确保模型能推广到可能遇到的数据的过程称为验证连续指标评估标准(针对连续的、分类的数据)	均方误差(MSE):所有误差的平方的平均值 ,对异常值比较敏感	平均绝对误差(MAE):所有误差绝对值的平均值	决定系数R方:预测值中所捕获的观察值的方差所占比例		R方是一个百分比,越大越好
```gorSquared := stat.RSquaredFrom(observerd,preval,nil)
分类指标评估标准		分类标量的个体评估指标			真阳性 :预测与观测一致			假阳性:预测与观测不一致			真阴性:预测不会实际也不会			假阴性:预测不会实际却是			TP-将正预测为真,FN-将正预测为假,FP-将反预测为真,TN-将反预测为假		准确度:预测正确的百分比 tp + tn /tp+ fn + fp + tn 		精确度:阳性预测中实际阳性的比率 tp /tp+fp		召回率:阳性预测中被标注为阳性的比率 tp/tp +fn 		混淆矩阵			一个混淆矩阵可以可视化二维形式预测各种 TN TP FP FN 数值。混淆矩阵行对应期望预测的种类,列对应实际预测的种类,每个元素的值对应的数量			混淆矩阵也叫精度矩阵,是用来表示精度评价,为N *N的矩阵,用来判别分类好坏的指标				曲线下面积(AUC)		接收者操作特征(ROC)				ROC曲线中使用的阙值代表用于划分不同分类的边界或者等级				stat下有函数
func ROC(n int, y []float6 4, classes []bool , weights []float64) (tpr, fpr []float64)
```gotpr , fpr := stat . ROC(O, scores , classes , nil)
ROC曲线重点了解下这几个节点:			(0,1)点:代表FPR=0,TPR=1; 最好的情况,所有正样本都被正确的预测了,并且没有负样本被人为是正样本。			(1,0)点:代表FPR=1,TPR=0;最坏的情况,表明所有的正样本都被错误的认为是负样本			(0,0)点:代表FPR=0,TPR=0;分类器将所有的样本都判定为负样本			(1,1)点:代表FPR=1,TPR=1;分类器将所有的样本都判定为正样本

3.2验证

过拟合:训练数据预测很好,新的数据预测则不好
防止过拟合的方法
一部分数据集上训练或你和模型,另一部分数据集上测试或评估模型

训练集与测试集的划分
func main() {
irisFile, err := os.Open("D:/gocode/iris.csv") if err != nil {
log.Fatal(err) } defer irisFile.Close() irisDF := dataframe.ReadCSV(irisFile) // 划分训练集与测试 8 2 分 trainNum := (4 * irisDF.Nrow()) / 5 testNum := irisDF.Nrow() / 5 if trainNum+testNum < irisDF.Nrow() {
trainNum++ } trainIdx := make([]int, trainNum) testIdx := make([]int, testNum) for i := 0; i < trainNum; i++ {
trainIdx[i] = i } for i := 0; i < testNum; i++ {
testIdx[i] = i } // 创建数据集 trainDF := irisDF.Subset(trainIdx) testDF := irisDF.Subset(testIdx) setMap := map[int]dataframe.DataFrame{
0: trainDF, 1: testDF, } for idx, setName := range []string{
"train.csv", "test.csv"} {
f, err := os.Create(setName) if err != nil {
log.Fatal(err) } w := bufio.NewWriter(f) if err := setMap[idx].WriteCSV(w); err != nil {
log.Fatal(err) } }} 3.2.2保留集(验证集、分割集) 用于在完成模型训练、模型调整和测试数据集

上获得可接受的性能之后验证

3.2.3交叉验证	将数据集随机分成k份,然后应用到不同的训练和测试组合中去	github.com/sjwhitworth/golearn/evaluattion包下有交叉验证的函数
evaluation . GenerateCrossFoldValidationConfusionMatrices()

转载地址:http://cgydi.baihongyu.com/

你可能感兴趣的文章
Ubuntu 13.10使用fcitx输入法
查看>>
pidgin-lwqq 安装
查看>>
mint/ubuntu安装搜狗输入法
查看>>
C++动态申请数组和参数传递问题
查看>>
opencv学习——在MFC中读取和显示图像
查看>>
retext出现Could not parse file contents, check if you have the necessary module installed解决方案
查看>>
pyQt不同窗体间的值传递(一)——对话框关闭时返回值给主窗口
查看>>
linux mint下使用外部SMTP(如网易yeah.net)发邮件
查看>>
北京联通华为光猫HG8346R破解改桥接
查看>>
python使用win32*模块模拟人工操作——城通网盘下载器(一)
查看>>
python append 与浅拷贝
查看>>
Matlab与CUDA C的混合编程配置出现的问题及解决方案
查看>>
python自动化工具之pywinauto(零)
查看>>
python一句话之利用文件对话框获取文件路径
查看>>
PaperDownloader——文献命名6起来
查看>>
PaperDownloader 1.5.1——更加人性化的文献下载命名解决方案
查看>>
如何将PaperDownloader下载的文献存放到任意位置
查看>>
C/C++中关于动态生成一维数组和二维数组的学习
查看>>
JVM最简生存指南
查看>>
漂亮的代码,糟糕的行为——解决Java运行时的内存问题
查看>>