分类器交叉验证java_使用交叉验证的KNN分类器

首先,您需要准确定义您的任务 . F.ex给出R ^(MxN)中的图像I,我们希望将I分类为包含面部的图像或没有面部的图像 .

我经常使用像素分类器,其任务类似于:对于图像,我决定每个像素是面像素还是非面像素 .

定义任务的一个重要部分是提出可以用作训练分类器的基础的假设 . F.ex我们相信像素强度的分布可用于区分面部图像和不包含面部的图像 .

然后,您需要选择一些定义图像的功能 . 这可以通过多种方式完成,您应该在分析您正在使用的相同类型的图像时搜索其他人的行为 .

像素分类中一种广泛使用的方法是使用像素强度值并对图像进行多尺度分析 . 多尺度分析的想法是不同的结构在称为尺度的不同模糊水平上最明显 . 作为例证考虑树的图像 . 没有模糊,我们注意到精细的结构,如小树枝和树叶 . 当我们模糊图像时,我们会注意到树干和主要树枝 . 这通常用作分割方法的一部分 .

当您了解任务和功能时,可以训练分类器 . 如果您使用kNN和交叉验证来查找最佳k,则应在训练/测试中拆分数据集,然后在训练/验证集中拆分训练集 . 然后使用简化训练集训练并使用验证集来确定哪个k是最佳的 . 在二元分类的情况下,例如面对非面,错误率通常用作性能的度量 .

最后,使用参数在完整数据集上训练分类器并估计其在测试集上的性能 .

A classification example: With or without milk?

作为一个完整的例子,考虑从上面拍摄的一杯咖啡的图像,因此它显示了杯子的边缘围绕着棕色的盘 . 进一步假设所有图像都被缩放和裁剪,因此盘的直径是相同的,并且图像的尺寸是相同的 . 为了简化任务,我们将彩色图像转换为灰度,并将像素强度缩放到范围[0,1] .

我们想要训练一个分类器,这样它可以区分咖啡加牛奶和没有牛奶的咖啡 . 通过检查一些咖啡图像的直方图,我们看到每个图像在直方图中有两个明显分开的“凸起” . 我们相信这些颠簸对应于前景(咖啡)和背景 . 现在我们假设前景的平均强度可以用来区分咖啡牛奶/咖啡 .

为了找到前景像素,我们观察到因为前景/背景比率是相同的(按设计),我们可以找到给出每个图像的比率的强度值 . 然后我们计算前景像素的平均强度,并将此值用作每个图像的特征 .

如果我们有N个手动标记的图像,我们将其分为训练和测试集 . 然后,我们计算训练集中每个图像的平均前景强度,给出一组(平均前景强度,标签)值 . 我们想要使用kNN,其中图像被分配与k个最近图像的多数类相同的类 . 我们将距离测量为平均前景像素强度的差的绝对值 .

我们通过交叉验证搜索最优k . 我们使用2倍交叉验证(aka holdout)来找到最佳k . 我们测试k = {1,3,5}并选择在验证集上给出最小预测误差的k .

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/426067.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python——assert(断言函数)

一、断言函数的作用 python assert断言是声明其布尔值必须为真的判定,如果发生异常就说明表达示为假。可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常。 二、常用格式 assert 11  assert 222*…

[Leetcode][JAVA][第20题][Stack][Map]

【问题描述】 20. 有效的括号 给定一个只包括 (,),{,},[,] 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可…

java学习(137):java异常初识

//java异常初识 public class test78 {public static void main(String[] args) {countArraylength( -1 );}public static int countArraylength(int length) {int[] nums new int[length];return nums.length;} } 运行结果

Java如何随机出石头剪刀布_JAVA编程实现石头剪刀布

我不是焊工import java.util.Scanner;public class Jsb {public static void main(String[] args) {while (true) {result(input(), random());System.out.println("");}}public static int input() {System.out.println("请输入:1-剪刀,…

java学习(138):异常处理

//异常 public class test79 {//定义方法声明定义异常,在满足条件时抛出异常对象,程序转向异常处理public double count(double n,double m)throws Exception {if (m 0) {//如果除数等于0.则抛出异常实例throw new Exception("对不起。除数不能等…

[Java]中[this][super]用法总结

this this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。 this的用法在java中大体可以分为3种: 1.普通的直接引用 这种就不用讲了,this相当于是指向当前对象本身。 2.形参与成员名字重名&am…

java泛型参数约束_Java泛型方法如何约束方法类型参数?

我一直在阅读有关泛型方法的文章,以为我理解了泛型类型参数如何约束方法参数类型,但是当我用实际代码测试了一些想法时,我得到了意外的结果.这是我不理解的简单通用方法:private static void foo(T[] t1, T[] t2){t2[0] t1[0];}...String[] stringArray new Strin…

Leetcode 950. Reveal Cards In Increasing Order

题目 链接:https://leetcode.com/problems/reveal-cards-in-increasing-order/ Level: Medium Discription: In a deck of cards, every card has a unique integer. You can order the deck in any order you want. Initially, all the cards start face down (un…

java学习(139):多个catch块

import java.sql.Connection;import java.io.IOException; import java.sql.SQLException;//java异常处理 //异常 public class test82 {//定义方法声明定义异常,在满足条件时抛出异常对象,程序转向异常处理public double count(double n, double m, Con…

[Leedcode][JAVA][第289题][生命游戏]

【问题描述】 根据 百度百科 ,生命游戏,简称为生命,是英国数学家约翰何顿康威在 1970 年发明的细胞自动机。给定一个包含 m n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态:1 即为活细…

MySQL报错113_mysql 2003 (113)

1. 问题描述远程访问192.168.2.200主机的mysql数据库时, 出现以下错误:[plain] view plain copy # mysql -host192.168.2.200 -uroot -p Enter password: ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘192.168.2.200‘ (113)2. 解决方法首先确保mysql开启了远程…

MySQL修改表名示例

首先,我们新建一个名为test_table的表: drop table if exists test_table; create table test_table select TABLE_SCHEMA,TABLE_NAME from information_schema.tables where TABLE_SCHEMAinformation_schema; 然后,我们执行如下语句&#xf…

java学习(140):1.7后新特性

import java.sql.Connection;import java.io.IOException; import java.sql.SQLException;//java异常处理 //异常 public class test82 {//定义方法声明定义异常,在满足条件时抛出异常对象,程序转向异常处理public double count(double n, double m, Con…

[剑指offer]面试题第[67]题[Leetcode][JAVA][第8题] 字符串转换整数 (atoi)[字符串]

【问题描述】 请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将…

java 面板 选择颜色_[代码全屏查看]-java颜色选择器

[1].[代码] [Java]代码package com.liuxing.test;import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JColorChooser;import javax.swing.JFrame;import javax.swing.JLabel;impor…

java学习(141):自定义捕捉异常

//自定义异常类 public class ArrayElement extends Exception{public static final int MAX_NUM1000;private static final String MESSAGE"集合存储元素过多";public ArrayElement(){}public String getMessage(){return MESSAGE"最大元素限制为"MAX_NU…

[Leedcode][JAVA][第42题][动态规划][双指针][栈]

【问题描述】 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。![image.png](https://upload-images.jianshu.io/upload_images/17025746-87f6db1a993ce416.png?imageMogr2/auto-orient/strip%7CimageVie…

java环境变量设置优化_Mac/windows配置jdk环境变量-seo优化只选拉一八科技

Mac/windows配置jdk环境变量Mac配置jdk环境变量直接双击dmg文件,然后单击[下一步]完成安装。请忽略[配置jdk环境变量]直接跳转到[检查jdk是否安装成功]。Windows配置jdk环境变量窗户系统配置1.右键单击桌面上的“计算机”,然后单击“属性”2.单击“高级系…

java学习(142):file类的基本创建

//file类的基本创建 import java.io.File;public class test85 {public static void main(String[] args){//创建文件对象String filePath"e:\\1.txt";File filenew File( filePath );System.out.println( filenull );//无论给定的文件虚拟路径是否存在//创建file在j…

speech模块实现语音识别

1.pip安装speech、pywin32 pip install speech pip install pywin322.例子 #!/usr/bin/python # coding:utf-8 from __future__ import unicode_literals import speech import os import sys import webbrowser__author__ "klx" # Create your views here. phrase …