いろいろ倉庫

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

Tips

【KNIME】同じ基準でNormalizeしたい

・例えば、学習データでにNormalizeを施してモデルを構築した場合に、テストデータをモデルに適用する前に学習データと同じNormalizeを施したいとする。 ・どうすればよいかと調べてみると、Normalizer (Apply)というノードがあった。サンプルのワークフロー…

【KNIME】アルファベットを含むセルをmissing"?"にしたい

・KNIMEでいろいろ扱っていると、特定の条件を満たすセルのデータを消したくなることがある。例えば、数値データばかりのところに、よくわからないアルファベットを含む文字列が混ざっている場合など。 ・こういう場合、文字列を含むセルをmissingにしたいが…

【KNIME】文字列を文字数で区切って別々の列に分けたい

・文字列を固定長の別々の列に分けたいことがあった。 ・やることはCell Splitterとほぼ同じなので、Cell Splitterで調べてみると、Cell Splitter By Positionなるノードがあった。如何にもこれっぽい。 ・このノードは、①区切る文字の隙間の番号と②区切った…

【KNIME】数値に応じて表を分割したい。

・表中の何らかの数値を基準として、表を分割したいことがあるとする。そんな時には、Rule-based Row Splitterノードが便利。 ・ワークフローを組んでみた(下図)。 ・Rule-based Row Splitterノードの設定は以下の通り。 ・ちなみに、Rule-based Row Filte…

【KNIME】Missing Valueのある列または行を丸ごと消したい

・Missing ValueのあるTableを処理する際に、何らかの方法でこの穴に対処する必要がある(例えば以下のTable)。 ・数値が何等か予想できるのであれば予測値で埋めることもできると思う。群内の欠損地であれば、平均値や中央値で補うこともあるかもしれない…

【KNIME】列をセミコロン区切りでくっつけたい

・諸般の事情で、別々のセルに分かれている文字列をセミコロン区切りで一つにまとめ上げたいケースがあった。 ・以下の例でいえば、それぞれの行に対して、「A;B;C」と「あ;い;う」という列をまとめた列を作成するイメージ。 ・なんとなく、ノード検索で"com…

【KNIME】SMILESを前処理したい

・化合物の構造情報を使って色々解析する際に、前処理をしたい場合がある。 ・例えば、SDFをSMILESに変換するのであれば、SDF ReaderとRDKit Canon SMILESで何とかなる。 ・今回は、このSMILESを更にKNIMEで前処理するにはどうすれば良いか、少し調べてみた…

【KNIME】行に含まれる値でcountifしたい。

・表の行に含まれている特定の値(文字列や数値)の数を数えたかった。 ・調べたところ、それらしい答えが見つかったので、メモしておく。 ・真似したのは以下の記事。 forum.knime.com ・以下、組んだワークフローの例(元記事と全く同じ) ・工程は以下の…

【KNIME】列または行の数値を集計したい。

・KNIMEで解析をしていて、列の数値または行の数値を集計したいことがあった。 ・それぞれに使うノードが異なるので、メモしておく(下図)。 ・列のデータを足す場合はGroupByを使う(以下設定)。ワイルドカードですべての列を選択し、処理にSumを設定。 …

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

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

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

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

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

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

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

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

【KNIME】データをNormalizationしたい

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

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

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

【その他】回帰モデルの評価指標のいろいろ

・回帰モデルの評価指標にも、いくつか種類がある。少しまとめてみた。・R2 (決定係数):1 に近いほど精度の高い予測が行えていることになる。が、案外癖のある指標。定義が色々ある。相関係数の二乗は、いろいろある決定係数の一つのらしい(決定係数と呼ば…

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

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

【KNIME】特徴量を削りたい

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

【その他】分類問題の評価指標を整理したい

・分類問題の評価指標がややこしいので、自分の言葉で整理することにした。 ・分類問題では、いろいろな指標がモデル評価に用いられる。調べたいことは、「このモデルで、ちゃんと正しく分けられましたか?」ということだが、それぞれ何なのか? ・私のイメ…

【その他】機械学習に使えるデータセットを探したい

・機械学習でいろいろ試していると、サンプルデータセットを入手したくなることがある。 ・少し調べてみると以下のサイトが便利そうだった。 ・The UCI Machine Learning Repository archive.ics.uci.edu ・kaggle dataset www.kaggle.com ・dataflair data-…

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

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

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

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

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

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

【KNIME】One Row To Manyで行を複製したい

・データを処理していると、行を複製したくなることがあった。 ・行を複製するOne Row To Manyというノードがあったので、記載する。 ・このノードは、表中の整数データの入った列の数値の数だけ行を複製する機能がある(下図)。 ・左が入力テーブル、真ん…

【KNIME】recursive loop (2 ports)を使ってみたい

・KNIMEでLoop処理を実行していると、複数のTableを変更してLoop処理したい場面があった。 ・今回私が遭遇したケースでは、回帰処理が求められたので、recursive loop (2 ports)で対応した(下図)。 ・初回の処理では、Startの上のポートから入ったTableは…

【KNIME】アルファベットの文字列を大文字または小文字に変換したい

・文字列をKNIMEで弄る際に、アルファベットを大文字又は小文字に統一したい場合がある。 ・そのような場合は、String Manipulationで変換可能できる(下図)。 ・大文字に変換したい場合はupperCase関数、小文字に変換したい場合はlowerCase関数を使用する…

【KNIME】Extensionで機能を追加したい

・KNIMEで専門的な解析をしたい場合は、追加機能をインストールする必要がある。 ・拡張機能(Extension)は、Fileから追加できる(下図)。 ・例えば、Twitterから情報をとってきたりするExtensionが欲しい場合、検索窓にキーワードを入力して検索すれば、…

【KNIME】円グラフの色も綺麗に塗りたい

・先に、散布図のプロットを綺麗に塗り分けたが、円グラフも綺麗に塗り分けたいと思った。 ・これもColor ManagerでRowにつけた色で塗ることができるのだが、Scatter Plotとは違ってデフォルトでは駄目らしい。 ・Pie/Donut Chartノードの設定を少し弄り、Us…

【KNIME】関数でグラフを描きたい。

・関数でグラフを描く方法が分からなかったので、少し調べてワークフローを作成した(下図)。 ・工程としては、 ① 適当な表を作成(データは何でも良い。列名はXでデータ型はDouble) ② 空の行を追加(例えば100行。下図) ③ 行番号を抽出して10で割って、0…

【EXCEL】マクロを使わずに、グラフのプロットの色を一気に真っ黒に変更したい。

・EXCELのグラフのプロットを一括で黒にを揃えたい場面があった。 ・マクロを使わない手法を少し考えてみたので、記録しておく。今回やりたいのは、下の図のプロットをすべて真っ黒に変更する、というもの。 ・まず、「ページレイアウト」タブの左上にある「…