Edited at

【機械学習】機械学習と集合の関係


はじめに

皆さん、こんにちは。機械学習エンジニアの外人です。今年も残りわずかですよね。今回の記事が2018年の最後の投稿になると思います。今回のテーマはタイトルの通り少し数学的な話になります。もちろん!説明は理解やすくしますのでご安心してください!いざ!出発です。


概要

数学の何の話かと言うとまずは集合からです。中学生ぐらいからずっと学んでいて未だにもプログラミングでよく使われる数式ですよね。特にAI機械学習の分野ではアルゴリズムが大事なので数学の知識は必須だと思います。(微積分までは知らなきゃいけないですよね…)


集合とは

高等学校数学A/集合と論理今回はこちらのサイトを参考にしました。


ある事柄の集まりのうち、定義が具体的に示されている物を集合(しゅうごう、英:set)という。例えば、「自然数」は「n > 0となる整数n の全体」という定義があるので、集合といえるが、「大きな数」は、どこからが大きな数といえるのかがはっきりしないため、集合とはいえない。ただし、「大きな数」を例えば「1億以上の整数」と定義すれば集合になりえる。


簡単に説明するとある具体的なデータが集まっていることを集合として命名するってことですよね。

これからの集合の例として


set.py

A = {"渡辺", "山本", "峯岸", "高橋", "横山"}

B = {"山本", "峯岸", "高橋", "大島", "岡田"}

この二つの集合を用意します。


集合の種類


1)積集合(共通集合)



この画像のようにA,Bの二つの集合の要素中でそれらの両方を満たす集合を積集合と呼びます。


intersection.py

A = {"渡辺", "山本", "峯岸", "高橋", "横山"}

B = {"山本", "峯岸", "高橋", "大島", "岡田"}
A B = {"山本", "峯岸", "高橋"}


2)和集合



A,Bの二つの集合の要素中でどちらかの条件を満たす集合を和集合と呼びます。


union.py

A = {"渡辺", "山本", "峯岸", "高橋", "横山"}

B = {"山本", "峯岸", "高橋", "大島", "岡田"}
A B = {"渡辺", "山本", "峯岸", "高橋", "横山" "大島", "岡田"}


3)空集合


empty_set.py

C = {}


この様に「要素がなにもない」というのもひとつの集合として考えられる。 これを空集合(

)と呼びます。

ちなみに
この記号はファイと呼ばれます。



このファイズが思われるのはなぜ何ですかね(笑)


4)部分集合



例えば、あるxAの集合の要素であり、xBの集合の要素でもあるつ言う条件が成り立つときはAはBの部分集合と呼びます。


subset.py

A = {"峯岸", "高橋"}

B = {"山本", "峯岸", "高橋", "大島", "岡田"}
A B = {"山本", "峯岸", "高橋", "大島", "岡田"}


まとめに

ここからはご覧のスポンサー…あ!違いますね。

今回の記事は集合だけを学んでみました。これだけたとあんまり機械学習には使われないかと思われるんですが、これを元で関数を作って微積分をやりながらデータを解析することになります。もう強い頭痛が来る感じです。次回はいきなり微分に入ります。


皆さん良いお年を~