countlabels
説明
機械学習や深層学習の分類問題に取り組む際に、データセットの中のラベル値の比率を調べたい場合に使用する関数です。
例
categorical 配列
カテゴリ A、B、C および D をもつ categorical 配列を生成します。配列には、各カテゴリのサンプルが含まれます。
lbls = categorical(["B" "C" "A" "D" "B" "A" "A" "B" "C" "A"]', ... ["A" "B" "C" "D"])
lbls = 10×1 categorical
B
C
A
D
B
A
A
B
C
A
配列内の一意のラベル カテゴリ値の数をカウントします。
cnt = countlabels(lbls)
cnt=4×3 table
Label Count Percent
_____ _____ _______
A 4 40
B 3 30
C 2 20
D 1 10
同じカテゴリをもつ 2 番目の categorical 配列を生成します。配列には、各カテゴリのサンプルと、欠損値をもつサンプルが 1 つ含まれます。
mlbls = categorical(["B" "C" "A" "D" "B" "A" missing "B" "C" "A"]', ... ["A" "B" "C" "D"])
mlbls = 10×1 categorical
B
C
A
D
B
A
<undefined>
B
C
A
配列内の一意のラベル カテゴリ値の数をカウントします。欠損値をもつサンプルは、<undefined> としてカウントに含まれます。
mcnt = countlabels(mlbls)
mcnt=5×3 table
Label Count Percent
___________ _____ _______
A 3 30
B 3 30
C 2 20
D 1 10
<undefined> 1 10
文字配列
関数 fileread でウィリアム・シェイクスピアのソネット集を読み取ります。テキストからアルファベット以外の文字をすべて削除し、小文字に変換します。
sonnets = fileread("sonnets.txt"); letters = lower(sonnets(regexp(sonnets,"[A-z]")))';
それぞれの文字がソネット集の中に何回出現するかカウントします。最も多く出現する文字をリスト表示します。
cnt = countlabels(letters); cnt = sortrows(cnt,"Count","descend"); head(cnt)
Label Count Percent
_____ _____ _______
e 9028 12.298
t 7210 9.8216
o 5710 7.7782
h 5064 6.8982
s 4994 6.8029
a 4940 6.7293
i 4895 6.668
n 4522 6.1599
数値配列
関数 poisrand を使用して、レート パラメーター 3 のポアソン分布から 1,000 個のランダムな整数の配列を生成します。結果のヒストグラムをプロットします。
N = 1000; lam = 3; nums = zeros(N,1); for jk = 1:N nums(jk) = poisrand(lam); end histogram(nums)

配列で表現される整数の度数をカウントします。
mm = countlabels(nums)
mm=10×3 table
Label Count Percent
_____ _____ _______
0 36 3.6
1 153 15.3
10 1 0.1
2 211 21.1
3 213 21.3
4 184 18.4
5 114 11.4
6 58 5.8
7 20 2
8 10 1
function num = poisrand(lam) % Poisson random integer using rejection method p = 0; num = -1; while p <= lam p = p - log(rand); num = num + 1; end end
2 つの変数をもつ文字の table を作成します。最初の変数 Type1 には、P 、Q および R の文字のインスタンスが格納されます。2 番目の変数 Type2 には、A、B および D の文字のインスタンスが格納されます。
tbl = table(["P" "R" "P" "Q" "Q" "Q" "R" "P"]', ... ["A" "B" "B" "A" "D" "D" "A" "A"]',... 'VariableNames',["Type1","Type2"]);
それぞれの文字が各 table 変数の中に何回出現するかカウントします。
cnt = countlabels(tbl,'TableVariable','Type1')
cnt=3×3 table
Type1 Count Percent
_____ _____ _______
P 3 37.5
Q 3 37.5
R 2 25
cnt = countlabels(tbl,'TableVariable','Type2')
cnt=3×3 table
Type2 Count Percent
_____ _____ _______
A 4 50
B 2 25
D 2 25
table を格納する ArrayDatastore オブジェクトを作成します。
ads = arrayDatastore(tbl,'OutputType','same');
それぞれの文字が各 table 変数の中に何回出現するかカウントします。
cnt = countlabels(ads,'TableVariable','Type1')
cnt=3×3 table
Type1 Count Percent
_____ _____ _______
P 3 37.5
Q 3 37.5
R 2 25
cnt = countlabels(ads,'TableVariable','Type2')
cnt=3×3 table
Type2 Count Percent
_____ _____ _______
A 4 50
B 2 25
D 2 25
入力引数
入力ラベル ソース。次のいずれかの値として指定します。
categorical ベクトル。
string ベクトル、または文字ベクトルの cell 配列。
数値ベクトル、または数値スカラーの cell 配列。
logical ベクトル、または logical スカラーの cell 配列。
前述のデータ型のいずれかを含む変数が格納された table。
関数
readallによって前述のいずれかのデータ型で返されるデータストア。関数
readallによって前述のいずれかのデータ型で返される基のデータストアが格納されたCombinedDatastoreオブジェクト。この場合、ラベル値をもつ基となるデータストアのインデックスを指定しなければなりません。
lblsrc には、カテゴリの離散集合をもつベクトルに変換できるラベルを格納しなければなりません。
例: lblsrc = categorical(["B" "C" "A" "E" "B" "A" "A" "B" "C" "A"],["A" "B" "C" "D"]) は、ラベル ソースを、A、B、C、および D の 4 つのカテゴリをもつ 10 個のサンプルの categorical ベクトルとして作成します。
例: lblsrc = [0 7 2 5 11 17 15 7 7 11] は、ラベル ソースを 10 個のサンプルの数値ベクトルとして作成します。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | table | cell | categorical
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。
例: 'TableVariable','Sex','UnderlyingDatastoreIndex',5 は、結合されたデータストアの基になる 5 番目のデータストアでのみ 'Sex' に対応するラベルを読み取ります。
読み取る table 変数。文字ベクトルまたは string スカラーとして指定します。この引数が指定されていない場合、countlabels は最初の table 変数を使用します。
基となるデータストア インデックス。整数スカラーとして指定します。この引数は、lblsrc が CombinedDatastore オブジェクトの場合に適用されます。countlabels は、lblsrc の UnderlyingDatastores プロパティを使用して、取得したデータストア内のラベルをカウントします。
出力引数
一意のラベル カウント。次の変数を含む table として返されます。
Label— 一意のラベル カテゴリ値。'TableVariable'を指定する場合は、Labelが table 変数名に置き換えられます。Count— 各ラベル値のインスタンス数。Percent— 各ラベル値の比率。パーセンテージとして表されます。
バージョン履歴
R2021a で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)