日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

vb.net 机器学习-候选消除法

發布時間:2025/3/12 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vb.net 机器学习-候选消除法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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 机器学习-候选消除法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。