標稱屬性的概念分層

2021-07-23 19:29:31 字數 1677 閱讀 6903

tag:c++分離字串;vector陣列去重

資料探勘》資料預處理》資料變換》資料離散化》標籤屬性的概念分層

注意到乙個啟發規則:較高概念分層的屬性,通常包含較少的不同值

以,國家這一屬性包含的不同值的個數,

和省或者州包含的不同取值數比較,前者個數顯然較少

# #號開始的行是注釋

# 非注釋行的第一行表示屬性的名稱,用空格或者tab隔開

# 從第二行開始為資料

#區 市 省 國家

上城區 杭州市 浙江省 中國

下城區 杭州市 浙江省 中國

江乾區 杭州市 浙江省 中國

臨安市 杭州市 浙江省 中國

海曙區 寧波市 浙江省 中國

江北區 寧波市 浙江省 中國

江寧區 南京市 江蘇省 中國

秦淮區 南京市 江蘇省 中國

## 概念分層從低到高應為:區 < 市 < 省 < 國家

讀取concept_input.txt中的內容

根據每個屬性(字段)統計對應的不同值(種類)個數

從小到大排序

輸出對應的屬性欄位到螢幕和concept_output.txt檔案中

#include

#include

#include

#include

#include

//分割字串

std::vector

split(std::string str,std::string pattern)

}return result;

}//刪除重複元素

void elimdups(std::vector

&word)

//定義乙個類用來儲存標字段及對應記錄不同種類數目

class location

location(location &l)

int get_num()

std::string get_loc()

};int main()

else

}

}//==消除重複 之後l1的大小即為其元素個數

elimdups(l1);

elimdups(l2);

elimdups(l3);

elimdups(l4);

//將字段field與其對應的值一一對應起來

location a[5]=;

//直接插入排序

int i,j;

for(i=2; i<=4; i++)

//輸出

std::cout

<<"自動產生這些屬性的概念分層從低到高為:"

fin.close();

fout.close();

std::cout

return

0;}

太久沒用c++了,想用標準c實現,但**寫的有點蠢,

一些c++的標準容器的用法還不太熟悉,(尤其是關聯容器map,set等)

導致前半部分和後半部分的**風格截然不同.

最重要的這種啟發式的規則並非萬無一失

標稱屬性的鄰近性度量

例 標稱屬性color red,yellow,black,blue,green.有5個屬性值可選 問 物件由標稱屬性刻畫,那麼怎麼判定物件之間的相異性呢?答 p 表示標稱屬性可選的屬性值的個數,在上例中,p 5 m 表示物件i與物件j之間有相同屬性值的個數 當然,我們可以對m賦予權重,增加m的影響度...

數倉分層概念

把複雜問題簡單化 將乙個複雜的任務分解成多個步驟來完成,每一層只處理單一的步驟,比較簡單和容易理解。清晰資料結構 每乙個資料分層都有它的作用域,這樣我們在使用表的時候能更方便地定位和理解。便於維護資料的準確性,當資料出現問題之後,可以不用修復所有的資料,只需要從有問題的步驟開始修復。減少重複開發 規...

軟體分層的基本概念

分層是軟體設計中非常重要的思想,特別是面對較大的軟體系統。分而治之是計算機中經常採用的一種方法。比如tcp ip七層協議棧就是典型的分層應用。任何乙個合格的軟體開發者都必須掌握的分層思想。下面是軟體分層的幾個基本概念 一 分層 1 經典的三層理論將應用分為三個層次 1 表現層 presentatio...