Imports System.IOPublic Class Form1Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickTextBox3.Text = ""TextBox2.Text = ""'属性个数Dim xmcount As Integer = 0Dim mysr As StreamReaderDim strline As String'是否正例Dim iszl As BooleanDim mystr As String()'标题名称Dim xmname() As String'变型空间Dim bxkj As New ArrayList()Dim tempsuppose As String()'一般假设Dim common_suppose As New ArrayList()'特殊假设Dim specific_suppose As String()'读取样本文件mysr = New StreamReader("e:\mydata.txt", System.Text.Encoding.Default)'第一行是标题strline = mysr.ReadLine()TextBox1.Clear()mystr = strline.Split(New Char() {",", ","})'取属性个数xmcount = mystr.GetUpperBound(0)ReDim xmname(xmcount)'初始化假设数组ReDim specific_suppose(xmcount)ReDim tempsuppose(xmcount)For my_i As Integer = 0 To xmcountspecific_suppose(my_i) = NothingNextFor my_i As Integer = 0 To xmcounttempsuppose(my_i) = "?"Nextcommon_suppose.Add(tempsuppose)'取得标题内容xmname = mystrDim i As Integer = 0For Each s As String In xmnameIf s.Trim() <> "" ThenTextBox1.AppendText(s & Space(5))End IfNext s'分析样本每一行While (Not mysr.EndOfStream)strline = mysr.ReadLine()If Trim(strline) = "" Then Exit WhileTextBox1.AppendText(vbCrLf)mystr = strline.Split(New Char() {",", ","})'取样本性质If Trim(mystr(xmcount + 1)) = "是" Theniszl = TrueElseiszl = FalseEnd IfTextBox1.AppendText(mystr(0) & Space(5))'读取一行中的每个属性,最后一个属性指示了样本是正例还是反例,不能做为分析内容For my_i As Integer = 1 To xmcountTextBox1.AppendText(mystr(my_i) & Space(5))If iszl Then'正例'设置特殊假设If IsNothing(specific_suppose(my_i)) Then'如果特殊假设的该属性未设定,则设定为样本的该属性值specific_suppose(my_i) = mystr(my_i)ElseIf specific_suppose(my_i) <> "?" And specific_suppose(my_i) <> mystr(my_i) Then'如果特殊假设的该属性已设定,且不为当前样本值,则设定为?,可以接受任何值specific_suppose(my_i) = "?"End If'设置一般假设For my_ii As Integer = 0 To common_suppose.Count - 1tempsuppose = TryCast(common_suppose.Item(my_ii), String())If Not IsNothing(tempsuppose) ThenIf tempsuppose(my_i) <> "?" And tempsuppose(my_i) <> mystr(my_i) Thencommon_suppose.Item(my_ii) = NothingEnd IfEnd IfNextElse'反例'设置一般假设For my_ii As Integer = 0 To common_suppose.Count - 1tempsuppose = TryCast(common_suppose.Item(my_ii), String())If Not IsNothing(tempsuppose) ThenIf mystr(my_i) = tempsuppose(my_i) Thencommon_suppose.Item(my_ii) = NothingEnd IfEnd IfNexttempsuppose = NothingReDim tempsuppose(xmcount)For my_iii As Integer = 1 To xmcountIf my_iii <> my_i Thentempsuppose(my_iii) = "?"Elsetempsuppose(my_iii) = specific_suppose(my_i)End IfNext'如果没有重复元素则增加Dim iscf As BooleanFor my_ii As Integer = 0 To common_suppose.Count - 1iscf = TrueDim mytempsuppose As String() = TryCast(common_suppose.Item(my_ii), String())If Not IsNothing(mytempsuppose) ThenFor mmm_i As Integer = 1 To xmcountIf Trim(tempsuppose(mmm_i)) <> Trim(mytempsuppose(mmm_i)) Theniscf = FalseEnd IfNextEnd IfIf iscf And (Not IsNothing(mytempsuppose)) ThenExit ForEnd IfNextIf Not iscf Thencommon_suppose.Add(tempsuppose)End IfEnd IfNext my_iTextBox1.AppendText(mystr(xmcount + 1) & Space(6))If Not iszl ThenDim isdel As BooleanFor my_ii As Integer = 0 To common_suppose.Count - 1isdel = Truetempsuppose = TryCast(common_suppose.Item(my_ii), String())If Not IsNothing(tempsuppose) ThenFor mm_i As Integer = 1 To xmcountIf Trim(tempsuppose(mm_i)) <> "?" Thenisdel = FalseEnd IfNextEnd IfIf isdel Thencommon_suppose.Item(my_ii) = NothingEnd IfNextEnd IfEnd WhileFor my_i As Integer = 1 To xmcountTextBox2.Text &= specific_suppose(my_i) & Space(6)NextFor my_iiii As Integer = 0 To common_suppose.Count - 1If Not IsNothing(common_suppose.Item(my_iiii)) Thentempsuppose = TryCast(common_suppose.Item(my_iiii), String())For m_i As Integer = 1 To xmcountTextBox3.Text &= tempsuppose(m_i) & Space(6)NextTextBox3.Text &= vbCrLfEnd IfNextMsgBox("变型空间在特殊假设和一般假设划分出来")End Sub
End Class

e:\mydata.txt内容如下:

名称,形状,味道,种类,一般吃法,大小
苹果,圆形,甜味,水果,生吃,小型,是
西瓜,圆形,甜味,水果,生吃,中型,是
苦瓜,长条形,苦味,蔬菜,熟吃,中型,否
香蕉,长条形,甜味,水果,生吃,小型,否
南瓜,圆形,甜味,蔬菜,熟吃,中型,是
荔枝,圆形,甜味,水果,生吃,小型,是

候选消除法用于收集和归纳样本的特征,得出变型空间 ,然后可以对未知样本进行分类方法,它建立在对样本属性集的分析上总结基础上,基本原理是:

1、设立2个假设,一个是一般假设,一个是特殊假设,通过对每条样本的分析,扩大特殊假设,缩小一般假设。
2、假设就是对样本的每个属性值的设定,可以设定为固定值,也可以设定为未知值?即,什么值都可以接受,如果设为nothing,表示任何属性值都不接受
3、每分析一行,就提取每行的样本的各个属性
1)对于正例:
需要删除一般假设中与正例不符合的假设
需要将特殊假设中与正例不符合的属性删除(即改为“?”),开始特殊假设全部为NOTHING,即不接受任何属性值
2)对于反例
需要删除一般假设中与反例符合的假设,然后增加含有与反例不一致的属性值,其他属性值为“?”的假设
3)实质是一般假设说明了反例的特征,特殊假设说明了正例特征

vb.net 机器学习-候选消除法相关推荐

  1. vb.net机器学习-手写和本机数字识别-K均值和欧氏距离

    一.欧氏距离 二维的公式 ρ = sqrt( (x1-x2)2+(y1-y2)2 ) 三维的公式 ρ = sqrt( (x1-x2)2+(y1-y2)2+(z1-z2)^2 ) n维空间的公式 n维欧 ...

  2. 《机器学习》读书笔记,第二章概念学习和一般到特殊序

    本章展示了几种概念学习算法,并讨论了这些算法能收敛到正确假设的条件.这里还分析了归纳学习的本质以及任意程序能从训练数据中泛华的理由. 2.1概念学习: 从有关某个布尔函数的输入输出训练样例中推断出该布 ...

  3. C# 的未来:主构造函数

    我们上次提到主构造函数是 2014 年,当时, C# 6 和 VB 12 的候选列表上去掉了主构造函数.去年底,主构造函数重新出现,作为提案#2691 ,现在成为 C# 9 的一个候选项. 主构造函数 ...

  4. 浅层分析-shallow parsing

    Shallow parsing 又叫Chunking(分块)是介于词性标注和Constituency parsing 之间的一种浅层分析方法.用于识别文本中最小短语块,例如名词短语NP,动词短语VP以 ...

  5. vb.net2019-Accord.Net机器学习库安装与SVM简单分类

    新建一个窗口项目. PM> Install-Package Accord -Version 3.8.0 正在尝试收集与目标为".NETFramework,Version=v4.6&qu ...

  6. 机器学习在抗乳腺癌候选药物预测模型中的应用

    摘要 为了提高抗乳腺癌候选药物特征筛选与模型预测的准确性,提出一种新的多种组合特征筛选方法对抗乳腺癌候选药物--雌激素受体α亚型(ERα)的分子描述符进行特征筛选,并根据筛选的分子描述符构建化合物活性 ...

  7. .net随笔-vb.net Accord.Net机器学习之SVM分类

    线性核分类 Imports Accord.ControlsImports Accord.IOImports Accord.MathImports Accord.Statistics.Distribut ...

  8. .net随笔-vb.net Accord.Net机器学习之贝叶斯分类

    1.Accord.IO/ExcelReader.cs读取excel文件,源码如下: https://github.com/accord-net/framework/blob/792015d0e2ee2 ...

  9. 机器学习-特征工程中的特征选择

    对于一个机器学习问题,数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限.由此可见,数据和特征在模型的整个开发过程中是比较重要.特征工程,顾名思义,是对原始数据进行一系列工程处理,将其提炼为 ...

最新文章

  1. java大文件读写操作,java nio 之MappedByteBuffer,高效文件/内存映射
  2. unity 2d 游戏优化之路 遇坑记录
  3. 由Python历史「解密」Python底层逻辑
  4. 在Powerpoint中插入Flash的方法
  5. Spring boot的Web开发
  6. Python机器学习--KNN归一化、距离的惩罚
  7. java printf 版本_java – PrintStream类型中的printf(String,Object ...
  8. SAP License:雾里看花系列——SAP顾问应该脱离”保姆”的角色
  9. MediaElement 4.1.3 发布,HTML5 音视频解决方案
  10. caffe利用shell创建train.txt和val.txt做数据输入
  11. Flutter学习 — 使用长列表
  12. PHP TCPDF导出支持中文的pdf
  13. 在Qt下使用映美精黑白相机:Qt 5.12 + ImagingSource(映美精)+ vs2017 Community + OpenCV 3.3
  14. 银联携手酷客多协助百万商家上线小程序
  15. html一排小标题怎么写,工作总结大标题小标题怎么写
  16. 矿山井口安检综合管理系统
  17. “恶意版”俄罗斯方块游戏火了
  18. 成为REAL程序员的终极指南
  19. STM32 GPS定位
  20. ECMAScript 6 简明教程

热门文章

  1. 使用Apache搭建个人用户主页
  2. python list操作说明
  3. Codeforces732D Exams
  4. hihocoder 1260
  5. 12家国内外之名公司多场面试,微软到谷歌.让我们通过学习达到100%面试率与100%通过率...
  6. ASP.NET页面揭秘之页面生命周期
  7. [导入]人的一生能有几天?
  8. 一年的天数 Exercise06_16
  9. web渗透漏洞实例讲解视频课程
  10. SSM(Spring4.x.x+SpringMVC4.x.x+Mybatis3.4.x)框架整合