いろいろ倉庫

KNIME、EXCEL、R、Pythonなどの備忘録

KNIME

【KNIME】sdfファイルから化合物の情報を抜き出したい。

・先日、化合物をKNIMEで扱ってみた。 ・化合物の構造ファイルとして、いろいろな記述法があり、中でもSMILESとSDFはよく見かける。 ・SMILESの特徴は、1次元の文字列の配列であり、記述自体がシンプルであること。SDFの特徴は、化合物の構造以外の情報も盛…

【KNIME】いろいろな分布の乱数を発生させたい。

・KNIMEでいろいろな分析をしていると、乱数を発生させたくなることがある。 ・EXCELでの乱数の発生のさせ方は以前記事にしたが、KNIMEだともっと簡単たくさんの乱数を発生させることができる。 ・Node Repositoryで調べると、以下の一群のノードが役に立ち…

【KNIME】同じ構造を強調したい。

・先日に引き続き、化合物を少し触ってみたい。例えば共通の構造を分かりやすく表示出来たら面白いな、と思ったので、少し調べてやってみた。 ・今回は、CheMBLから適当にsdfのデータセットを落としてきたので、読み込むのはsdf readerノードで実施した。構…

【KNIME】化合物を扱いたい。

・KNIMEの使い方は様々にあるが、そのうちで特に発達している利用法の1つにケモインフォマティクスがある。化学情報学や計算化学と日本語訳される学問で、化学物質の性質を情報学の観点から表現・解析・予測する学問らしい。せっかくKNIMEを扱っているので、…

【KNIME】生存時間解析してみたい。

・生存時間を評価する手法として、Kaplan-Meier法という手法がある。これは、生存率曲線を描くことで、生存時間(期間)を推定する手法。 ・2群間の生存時間を比較する統計手法としてよく用いられるのは、ログランク検定と一般化Wilcoxon検定だろう。Cox比例…

【KNIME】グラフ通りのデータを作りたい。

・サンプルデータを使って分析を組んでいると、「こんな感じの分布のデータが欲しいなぁ」と思うことがある。 ・正規分布だったり一様分布だったりするならシンプルなのだが、例えば「平面グラフのこの辺に軸が傾いた楕円状に分布しているデータが欲しい」な…

【KNIME】棒グラフに色を付けたい。

・散布図はcolor managerノードで簡単に色を付けることができたが、棒グラフ(Bat Chart)のカラムに色を付ける方法が分からなかった。 ・少し癖があったので、メモしておく。 ・以下のようなフローを組んだ。 ・左のウィンドウはTable Creatorの中身。各列…

【KNIME】多変量データをt-sneで可視化したい

・多変量データを可視化する方法には様々あるが、今回はt-sneという手法を試してみたい。ティーズニーと読むらしい。 ・t-SNE (t-distribution Stochastic Neighbor Embedding)は、データ間の距離(類似性)を保持したまま、低次元化する手法だそうだ。・距…

【KNIME】Spectral Clusteringでクラスタリングしたい。

・先日KNIMEでk-meansクラスタリングなどを実施してみた。k-meansクラスタリングの特徴は、プロットした空間中で中心から距離をベースに考えるところで、要は2次元グラフ上なら丸く分布していないと綺麗に分けることができない。 ・歪んだ分布の場合、Spectr…

【KNIME】統計解析してみたい

・KNIMEには、ある程度の統計解析機能がデフォルトで搭載されている(下図)。また、デフォルトでない解析であっても、Extensionを入れれば非常に多様な解析をカバーできる。 ・例えば、A、B各群n=10から得られたデータのセットに対して、Independent groups…

【KNIME】curve fittingで酵素反応速度論的パラメータを推定してみたい(非線形回帰)。

・酵素反応速度論的解析をする際に、モデルの式に数値を当てはめてパラメータを推定するcurve fittingをやりたかったのだけれど、KNIMEでのやり方が分からなかった。 ・Pythonなら出来そうだったので、KNIMEにPythonを入れ込んで、サンプルデータのfittingを…

【KNIME】データをNormalizationしたい

・数値データを解析する際に、複数の特徴量を使う場合、単位の違いが問題になることがある。Random Forestなどの決定木系の手法ではそれほど問題にならないかも知れないが、その他多くの場合では何らかの手法でNormalizationされることが多い。 ・KNIMEでNor…

【KNIME】回帰分析に適用するモデルを決めたい(Pycaret)

・教師あり学習に使うモデルを決めるために、PythonのライブラリPycaretをKNIMEで実行してみた。 ・まず、先日作成したPythonの仮想環境にPycaretを入れようとインストールしようとしたが、上手くいかなかった。 ・knimeenvを作成した際にconda create -n kn…

【KNIME】KNIMEでPythonを使ってみたい。

・KNIMEにはデータ分析に関連する様々な機能が搭載されており、Extensionを用いることにより、PythonやRなどを動かすこともできる。 ・少し解析をやっていて、Pythonを回したいシチュエーションに出くわした。それならPythonだけで十分じゃないかという話は…

【KNIME】重複した列を削除したい

・データ処理の不備で、同じ項目が複数混ざってしまうことがある。 ・そのような場合は、項目の行を削除するなどする必要がある。 ・そのような場合は、Duplicate Row Filterノードが便利。 ・例えば、同じ生徒が複数回含まれてしまっている表から、被ってい…

【KNIME】Random Forestで特徴量の重要度を算出したい

・以前に記載した通り、機械学習では、無駄な特徴量は捨てるか省くかした方が良い。 ・Random Forestで特徴量の大切さ(寄与度?)を算出する手法がないかと調べてみたところ、Random Forest Learnerノードの真ん中の出力ポートAttribute Statisticsを利用す…

【KNIME】Random Forest Regressionで回帰問題を解きたい

・分類問題を試してみたので、次は回帰問題を試してみたい。 ・やり方は分類問題と全く同じで、Random Forestの回帰問題版を使用した(下図) ・サンプルデータセットとしては、ボストン家賃データセットを用いた。その他の設定はすべてデフォルトで、モデル…

【KNIME】特徴量を削りたい

・機械学習において特徴量を選抜する手法は様々にある。 ・一般的なものとして、分散が小さすぎる特徴量、相関が高すぎる特徴量を除去することは真っ先に挙げられると思う。 ・分散が小さすぎる特徴量を除く際には、Low Variance Filterノード、相関が高すぎ…

【KNIME】Random Forestで分類問題を解いてみたい

・機械学習の教師あり学習というものをKNIMEでやってみたく、多くの場合で用いられるRandom Forestという手法を試してみた。 ・データのサンプルは、教師あり学習の分類問題で一般的なIris分類問題(アヤメの分類問題)を用いた。 ・一連の流れをフローで組…

【KNIME】主成分分析したい

・機械学習で多変量を扱う際に、変量(特徴量)を減らしたいことがある。 ・Uncle Bernie's ruleというもので、学習に必要なデータの数は、説明変数の数の10倍以上は準備しましょうというもので、いたずらに特徴量や説明変数を増やしてモデルするのはよろし…

【KNIME】階層型クラスタリングに使う距離情報を読み込みたい。

・データ間の距離情報のみを得た場合に、階層型クラスタリグを適用したい。 ・そこで、距離情報を読み込んで階層型クラスタリングに適用してみたい。 ・サンプルデータとして、10個のポイントの相互距離を用いた(下図)。 ・これを三角行列風の表に加工し、…

【KNIME】酵素阻害0-100%を固定してFittingしたい。

・先日、プレートリーダーから得たデータを用いて4パラメーターロジスティック曲線(正確には4パラメータ logロジスティック曲線)にFittingして、IC50を求めてみた。 ・4パラメーターロジスティック曲線は、4つのパラメーターで定義される曲線で、S字カーブ…

【KNIME】ファイル名を変更したい。

・ファイル名を変更したくなったのでやり方を調べてみた。 ・参考にしたのは、KNIME Hubの以下の記事。 hub.knime.com ・私が作成したのは、以下のワークフロー。 ・流れは以下の通り。 ①String Inputで変更後のファイル名を入力(変数名はNewnameとした)。…

【KNIME】プレートリーダーのデータを解析したい(Rの利用)。

・先日の続きで、プレートリーダーのデータを解析して、IC50(50%反応阻害濃度)などを求めてみたい。 ・デフォルトのKNIMEの機能では目的の解析が難しいので、ExtensionのHTS Toolsをインストールする。Extensionは下図のFile⇒install KNIME Extensions...…

【KNIME】プレートリーダーのデータを整理したい。

・生物系の実験で、プレートリーダーで得られたデータを解析することで、試験物質のin vitro活性を評価することがしばしばある。 ・KNIMEでこの解析が自動化できないか調べてみたところ、ExtensionのCommunityノードで、HCS Toolというものがあった。これを…

【KNIME】データをピックアップしたい。

・KNIMEでデータからモデルを作成する際に、データ全体ではなく、その一部からピックアップして使いたくなることがある。 ・例えば、「100行ある表から、30行だけピックアップして何らかの解析に使いたい」、「被りありで50行ピックアップしたい」、「分類問…

【KNIME】周期性を見てみたい。

・時系列データの解析手法として、トレンド解析及びトレンド除去後の周期性の解析というのが一般的に用いられるらしい。 ・時系列データの解析を実施してみたいと思って最初に思いついたのが、気温のデータだった。気温のデータは、気象庁のHPからcsvでダウ…

【KNIME】外れ値も加味したクラスタリングをしてみたい(DBSCAN)

・クラスタリングの手法として、密度を基準に、ぎゅっと集まっているところを一つのクラスタ、疎なところを外れ値として解釈するDBSCANという手法がある。 ・ざっくりと組んでみた(下図)。これもデータ間の距離を算出してやる必要があるので、Numeric Dist…

【KNIME】KNIMEの使い道

・私の思うKNIMEの長所は、処理の状況をステップごとに視覚的に追えること、習得コストが低い割にいろいろ出来ること(コストパフォーマンスが良い)、世界的に見ればコミュニティが活発であること、desktop版は無料で利用できること、あたりだと思う。 ・そ…

【KNIME】階層型クラスタリングをやってみたい(Hierarchical Clustering)

・これまでは非階層型クラスタリングを試していたが、今回は階層型クラスタリングを試してみたい。 ・試しに組んでみた(下図)。 ・階層型クラスタリングといえば、デンドログラム(樹形図)での表示だと思う。 ・Hierarchical Clusteringのノードを右クリ…