機械学習
・お題:機械学習というやつで遊んでみたくて、画像に写っているものが何か分類する問題をやってみようと思った。有名な問題で、手書きの数字画像がなんの数字か判別するモデルを作るやつがあるらしい。やってみたい。 ・とりあえず、データをロードしてみる…
・機械学習のハイパーパラメータを最適化したいと思って調べてみたところ、以下のKNIME Hubの記事が参考になりそうだった。 hub.knime.com ・まず、Parameter Optimization関連のノードを使うためには、Extensionをインストールする必要がある(以下)。 ・…
・モデルの汎化性能を評価する目的で、交差検証(Cross Validation)してみようと思った。 ・通常、機械学習の際には、データを学習用とテスト用に分割する。Cross Validationでは、これを何度も実施して、予測性能を検証することになる。例えば、学習用デー…
・KNIMEでいろいろな分析をしていると、乱数を発生させたくなることがある。 ・EXCELでの乱数の発生のさせ方は以前記事にしたが、KNIMEだともっと簡単たくさんの乱数を発生させることができる。 ・Node Repositoryで調べると、以下の一群のノードが役に立ち…
・KNIMEの使い方は様々にあるが、そのうちで特に発達している利用法の1つにケモインフォマティクスがある。化学情報学や計算化学と日本語訳される学問で、化学物質の性質を情報学の観点から表現・解析・予測する学問らしい。せっかくKNIMEを扱っているので、…
・サンプルデータを使って分析を組んでいると、「こんな感じの分布のデータが欲しいなぁ」と思うことがある。 ・正規分布だったり一様分布だったりするならシンプルなのだが、例えば「平面グラフのこの辺に軸が傾いた楕円状に分布しているデータが欲しい」な…
・多変量データを可視化する方法には様々あるが、今回はt-sneという手法を試してみたい。ティーズニーと読むらしい。 ・t-SNE (t-distribution Stochastic Neighbor Embedding)は、データ間の距離(類似性)を保持したまま、低次元化する手法だそうだ。・距…
・先日KNIMEでk-meansクラスタリングなどを実施してみた。k-meansクラスタリングの特徴は、プロットした空間中で中心から距離をベースに考えるところで、要は2次元グラフ上なら丸く分布していないと綺麗に分けることができない。 ・歪んだ分布の場合、Spectr…
・酵素反応速度論的解析をする際に、モデルの式に数値を当てはめてパラメータを推定するcurve fittingをやりたかったのだけれど、KNIMEでのやり方が分からなかった。 ・Pythonなら出来そうだったので、KNIMEにPythonを入れ込んで、サンプルデータのfittingを…
・数値データを解析する際に、複数の特徴量を使う場合、単位の違いが問題になることがある。Random Forestなどの決定木系の手法ではそれほど問題にならないかも知れないが、その他多くの場合では何らかの手法でNormalizationされることが多い。 ・KNIMEでNor…
・教師あり学習に使うモデルを決めるために、PythonのライブラリPycaretをKNIMEで実行してみた。 ・まず、先日作成したPythonの仮想環境にPycaretを入れようとインストールしようとしたが、上手くいかなかった。 ・knimeenvを作成した際にconda create -n kn…
・回帰モデルの評価指標にも、いくつか種類がある。少しまとめてみた。・R2 (決定係数):1 に近いほど精度の高い予測が行えていることになる。が、案外癖のある指標。定義が色々ある。相関係数の二乗は、いろいろある決定係数の一つのらしい(決定係数と呼ば…
・以前に記載した通り、機械学習では、無駄な特徴量は捨てるか省くかした方が良い。 ・Random Forestで特徴量の大切さ(寄与度?)を算出する手法がないかと調べてみたところ、Random Forest Learnerノードの真ん中の出力ポートAttribute Statisticsを利用す…
・分類問題を試してみたので、次は回帰問題を試してみたい。 ・やり方は分類問題と全く同じで、Random Forestの回帰問題版を使用した(下図) ・サンプルデータセットとしては、ボストン家賃データセットを用いた。その他の設定はすべてデフォルトで、モデル…
・機械学習において特徴量を選抜する手法は様々にある。 ・一般的なものとして、分散が小さすぎる特徴量、相関が高すぎる特徴量を除去することは真っ先に挙げられると思う。 ・分散が小さすぎる特徴量を除く際には、Low Variance Filterノード、相関が高すぎ…
・分類問題の評価指標がややこしいので、自分の言葉で整理することにした。 ・分類問題では、いろいろな指標がモデル評価に用いられる。調べたいことは、「このモデルで、ちゃんと正しく分けられましたか?」ということだが、それぞれ何なのか? ・私のイメ…
・機械学習の教師あり学習というものをKNIMEでやってみたく、多くの場合で用いられるRandom Forestという手法を試してみた。 ・データのサンプルは、教師あり学習の分類問題で一般的なIris分類問題(アヤメの分類問題)を用いた。 ・一連の流れをフローで組…
・機械学習で多変量を扱う際に、変量(特徴量)を減らしたいことがある。 ・Uncle Bernie's ruleというもので、学習に必要なデータの数は、説明変数の数の10倍以上は準備しましょうというもので、いたずらに特徴量や説明変数を増やしてモデルするのはよろし…
・データ間の距離情報のみを得た場合に、階層型クラスタリグを適用したい。 ・そこで、距離情報を読み込んで階層型クラスタリングに適用してみたい。 ・サンプルデータとして、10個のポイントの相互距離を用いた(下図)。 ・これを三角行列風の表に加工し、…
・機械学習でいろいろ試していると、サンプルデータセットを入手したくなることがある。 ・少し調べてみると以下のサイトが便利そうだった。 ・The UCI Machine Learning Repository archive.ics.uci.edu ・kaggle dataset www.kaggle.com ・dataflair data-…
・クラスタリングの手法として、密度を基準に、ぎゅっと集まっているところを一つのクラスタ、疎なところを外れ値として解釈するDBSCANという手法がある。 ・ざっくりと組んでみた(下図)。これもデータ間の距離を算出してやる必要があるので、Numeric Dist…
・これまでは非階層型クラスタリングを試していたが、今回は階層型クラスタリングを試してみたい。 ・試しに組んでみた(下図)。 ・階層型クラスタリングといえば、デンドログラム(樹形図)での表示だと思う。 ・Hierarchical Clusteringのノードを右クリ…
・シルエット図を描きたくて、少し調べてみた。 ・以下の構成で、それっぽいグラフを描くことができた。ちなみに、k=3で、直観的にはそこそこ綺麗に分けられる筈。 ・少々癖があるのがBar Chartノードで、デフォルトだと垂直グラフなので、水平グラフにする…
・これまでにいくつかクラスタを扱ったが、k-meansなどの手法はクラスタ数を自分で決めなければならない。 ・何を以て「最適なクラスタ数」というのはは諸説あるが、k-means法でクラスタ数を決めるのに一般的に用いられたいるのは、エルボー法かシルエット法…
・先のノード検索の際に出てきたk-Medoidsを使ってみる。 ・細かいことは分からないが、k-Meansのように仮想の重心を置くのではなく、データの中から重心に相当するものを選抜することでクラスタリングをするらしい。 ・特長は外れ値に比較的強いことだとか…
・先の記事で、k-Meansで気軽にクラスタリングを試して気づいたが、似たような名前のクラスタリング手法がある。Fuzzy c-Meansとk-Medoidsだ。 ・後者はいったん置いておいて、前者を前回と同じデータに対して試した。 ・Fuzzy c-Meansノードの出力ポートを…
・KNIMEはデータ解析プラットフォームなので、Extensionを追加しなくても、デフォルトで様々な解析が可能。 ・巷で流行っている機械学習などもノードをくっつけてモデルのパラメータを与えてやればある程度実行できる。 ・今回は、クラスタリングというもの…