字幕表 動画を再生する 字幕スクリプトをプリント 翻訳字幕をプリント 英語字幕をプリント [MUSIC PLAYING] { 機械学習 } Last episode, we used a decision tree as our classifier. { 機械学習 }レシピ Today we'll add code to visualize it 前回は 分類器として 決定木を使いました so we can see how it works under the hood. 今日はそれを可視化する為に コードを加えて There are many types of classifiers 陰でどう動くか見れるようにします you may have heard of before-- things like neural nets 多種の分類器があって or support vector machines. 以前に聞いたことがあったでしょうが ニューラルネットとか So why did we use a decision tree to start? サポートベクターマシンとか Well, they have a very unique property-- ではなぜ初めに決定木を使ったのか they're easy to read and understand. それらにはとても 独特なプロパティがあり In fact, they're one of the few models that are interpretable, 読みやすく理解しやすいのです where you can understand exactly why the classifier makes 実は解釈しやすい 少数モデルの1つで a decision. なぜ分類器が決定をするか 正確に理解できます That's amazingly useful in practice. 実践ではそれは非常に役立ちます To get started, I'll introduce you まず始めに to a real data set we'll work with today. 今日作業する本物の データセットを紹介しましょう It's called Iris. それはアイリスと呼ばれます Iris is a classic machine learning problem. アイリスは定番の機械学習プログラムです In it, you want to identify what type of flower ある花がどんな種類か you have based on different measurements, 花弁の長さや幅のような種々の 測定値に基づいて特定できます like the length and width of the petal. データセットには3種の異なる 花が含まれています The data set includes three different types of flowers. それらはアイリスの全種で setona と versicolor と virginica です They're all species of iris-- setosa, versicolor, 下にスクロールすると and virginica. 各種50例 つまり全部で 150 例が示されています Scrolling down, you can see we're 各例を表すのに 4つの特徴量が使われています given 50 examples of each type, so 150 examples total. これらは萼と花弁の長さと幅です Notice there are four features that are りんごとオレンジの問題と同じに used to describe each example. 最初の4列は特徴量で These are the length and width of the sepal and petal. 最後の列は各行でどの種の花か ラベルを付けています And just like in our apples and oranges problem, 私達の目標はこのデータセットを使い 分類器を学習させることです the first four columns give the features and the last column するとその分類器を使って 以前見たことのない新しい花を与えれば gives the labels, which is the type of flower in each row. どの種の花か予測できます Our goal is to use this data set to train a classifier. 既存のデータセットでの 作業方法を知ることは良い能力です Then we can use that classifier to predict what species ではアイリスを scikit-learn に インポートして of flower we have if we're given a new flower that we've never コードでどう見えるか見てみましょう seen before. タイミングよく scikit の 好意的な人々が Knowing how to work with an existing data set サンプルのデータセットをたくさん 提供してくれました is a good skill, so let's import Iris into scikit-learn ユーティリティ及びアイリスを含んでいて and see what it looks like in code. それらのインポートが簡単になっています Conveniently, the friendly folks at scikit アイリスをこのようにコードに インポートできます provided a bunch of sample data sets, データセットは Wiki からの表と including Iris, as well as utilities メタデータの両方を含んでいます to make them easy to import. メタデータで特徴量の名前と We can import Iris into our code like this. 異なる種類の花の名前が分かります The data set includes both the table 特徴量と例自体は from Wikipedia as well as some metadata. データ変数に入れられます The metadata tells you the names of the features 例えば最初のエントリーを プリントアウトすれば and the names of different types of flowers. この花の測定値が分かります The features and examples themselves これらは特徴量の名前に 索引を付けます are contained in the data variable. ですから 最初の値は萼の長さ 2番目は萼の幅を表す等です For example, if I print out the first entry, ターゲット変数にはラベルが入ります you can see the measurements for this flower. 同様にこれらはターゲット名に 索引を付けます These index to the feature names, so the first value 最初のものを印字してみましょう refers to the sepal length, and the second to sepal width, 0 のラベルは setona を意味します and so on. Wiki の表を見れば The target variable contains the labels. 今第1行を印刷したと気づきます Likewise, these index to the target names. データとターゲット変数両方に 150 のエントリーがあります Let's print out the first one. お望みならそれらに繰り返して A label of 0 means it's a setosa. このようにデータセット全体を プリントアウトできます If you look at the table from Wikipedia, データセットでの作業方法が 分かったら you'll notice that we just printed out the first row. もう分類器に学習させられます Now both the data and target variables have 150 entries. しかし その前にまず データを分ける必要があります If you want, you can iterate over them 例の幾つかを除外して to print out the entire data set like this. それらを後の為に取っておきます Now that we know how to work with the data set, 取っておく例をテストデータと呼びます we're ready to train a classifier. 学習データからこれらを分離しておき But before we do that, first we need to split up the data. 後にテスト例を使って I'm going to remove several of the examples 前に見たことのないデータで 分類器がどの位の精度か and put them aside for later. テストします We'll call the examples I'm putting aside our testing data. 実はテストは機械学習を We'll keep these separate from our training data, 実際にうまくやる重要な部分です and later on we'll use our testing examples それは以降の回で もっと詳細に説明します to test how accurate the classifier is ただ今回の試みでは 各種の花の1つの例を除外します on data it's never seen before. たまたま データセットは 順序がついているので Testing is actually a really important part 最初の setosa はインデックス 0 に of doing machine learning well in practice, 最初の versicolor は 50 に等々 and we'll cover it in more detail in a future episode. 構文は少し複雑そうですが やっているのはただ Just for this exercise, I'll remove one example データとターゲット変数から 3つのエントリーを除外してるだけです of each type of flower. 次に 新しい変数セットを2つ作ります And as it happens, the data set is 1つは学習用 1つはテスト用です ordered so the first setosa is at index 0, 学習にデータの大部分があり and the first versicolor is at 50, and so on. テストには除外した例だけがあります The syntax looks a little bit complicated, but all I'm doing では前と同様に 決定木分類器を作って is removing three entries from the data and target variables. 学習データについて 学習させます Then I'll create two new sets of variables-- one それを可視化する前に 木を使って for training and one for testing. テストデータを分類させましょう Training will have the majority of our data, 私達は各種の花が1つあると知っていて and testing will have just the examples I removed. 予想するラベルを打ち出せます Now, just as before, we can create a decision tree では木が予測するものを見てみましょう classifier and train it on our training data. それにテストデータ用の特徴量を与えて Before we visualize it, let's use the tree ラベルを取得します to classify our testing data. 予測されたラベルがテストデータに 合致するのが分かります We know we have one flower of each type, これは正しく出したということです and we can print out the labels we expect. さて 念頭に入れてほしいですが これはとても単純なテストで Now let's see what the tree predicts. これから先もっと詳しく 入っていくわけです We'll give it the features for our testing data, では木を可視化して and we'll get back labels. 分類器の働き方を見てみましょう You can see the predicted labels match our testing data. その為に scikit の チュートリアルの中から That means it got them all right. コードをコピーペーストします Now, keep in mind, this was a very simple test, このコードは可視化の為で and we'll go into more detail down the road. 機械学習の概念ではないので Now let's visualize the tree so we can ここで詳しく述べません see how the classifier works. これら2例からのコードを結合させて To do that, I'm going to copy-paste 読みやすい PDF を作ったら some code in from scikit's tutorials, スクリプトを実行して その PDF を開けます and because this code is for visualization そして木が見られます and not machine-learning concepts, データ分類にそれを使う為に 上から読んで始めます I won't cover the details here. 各ノードは特徴量の1つについて 「はい」か「いいえ」を尋ねます Note that I'm combining the code from these two examples 例えば このノードは花弁の幅が to create an easy-to-read PDF. 0.8 cm 以下か尋ねます I can run our script and open up the PDF, 分類する例でそれが真なら 左に進みます and we can see the tree. そうでないなら 右へ進みます To use it to classify data, you start by reading from the top. ではこの木を使って Each node asks a yes or no question 私達のテストデータの 例を分類しましょう about one of the features. これが最初にテストする花の 特徴量とラベルです For example, this node asks if the pedal width メタデータを使うことで 特徴量の名前を見つけられますね is less than 0.8 centimeters. 私達はこの花が setosa だと知っています If it's true for the example you're classifying, go left. では 木はどう予測するか見てみましょう Otherwise, go right. ウィンドウをリサイズして 見やすくしましょう Now let's use this tree to classify an example 木が尋ねる最初の質問は from our testing data. 花弁の幅が 0.8 cm 以下かです Here are the features and label for our first testing flower. それは4番目の特徴量です Remember, you can find the feature names 答えは真なので 左へ進みます by looking at the metadata. この時点でもう葉ノードにいます We know this flower is a setosa, so let's see 他に尋ねる質問はありません what the tree predicts. そこで木は setosa という 予測を出します I'll resize the windows to make this easier to see. それは正しいです And the first question the tree asks ラベルは 0 ですね これは その種類の花のインデックスです is whether the petal width is less than 0.8 centimeters. では2つ目のテスト例をやってみましょう That's the fourth feature. これは versicolor なんですが The answer is true, so we proceed left. 木はどう予測するか見てみましょう At this point, we're already at a leaf node. また上から読んでいき 今度は花弁の幅が There are no other questions to ask, 0.8 cm より大きいです so the tree gives us a prediction, setosa, 木の質問に対する答えは偽です and it's right. そこで右へ行きます Notice the label is 0, which indexes to that type of flower. 木の次の質問は 花弁の幅が 1.75 以下かです Now let's try our second testing example. それを絞り込もうとしています This one is a versicolor. それは真なので 左へ行きます Let's see what the tree predicts. 今度は花弁の長さが 4.95 以下かと 訊いています Again we read from the top, and this time the pedal width それは真なので また左へ行きます is greater than 0.8 centimeters. 最後に 木は花弁の幅が 1.65 以下かと訊きます The answer to the tree's question is false, それは真なので 左です so we go right. こうして予測が出て versicolor です The next question the tree asks is whether the pedal width また正解です is less than 1.75. 皆さんは練習として自分で 最後のものを試せます It's trying to narrow it down. そして 私達が木を使う方法は That's true, so we go left. コードで動くのと同じ方法です Now it asks if the pedal length is less than 4.95. 決定木を手早く可視化して 読む方法を説明しました That's true, so we go left again. ここで学ぶことはもっと沢山あります And finally, the tree asks if the pedal width 特に 例からどのようにして それらが自動で作られるのかですね is less than 1.65. 以降の回でそれを 説明していきますが That's true, so left it is. 今は不可欠な点で 終わりにしましょう And now we have our prediction-- it's a versicolor, 木が尋ねるどの質問も and that's right again. 皆さんの特徴量の1つについてで なければいけません You can try the last one on your own as an exercise. つまり 特徴量が良ければ良いほど And remember, the way we're using the tree 良い木を作れます is the same way it works in code. 次回はどう良い木にするかを 見ていきます So that's how you quickly visualize and read ご視聴どうもありがとう 次回お会いしましょう a decision tree. There's a lot more to learn here, especially how they're built automatically from examples. We'll get to that in a future episode. But for now, let's close with an essential point. Every question the tree asks must be about one of your features. That means the better your features are, the better a tree you can build. And the next episode will start looking at what makes a good feature. Thanks very much for watching, and I'll see you next time. [MUSIC PLAYING]
A2 初級 日本語 米 データ 分類 テスト 学習 セット ラベル 決定木の可視化 - 機械学習レシピ #2 (Visualizing a Decision Tree - Machine Learning Recipes #2) 81 9 scu.louis に公開 2021 年 01 月 14 日 シェア シェア 保存 報告 動画の中の単語