いろいろ倉庫

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

2021-01-01から1年間の記事一覧

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

【KNIME】散布図のプロットの色を綺麗に塗りたい

・散布図のプロットを良い感じの色合いで表現したい場合がある。 ・例えば、ある変数AとBを軸に取った散布図を描いた際に、更に別の変数Cをプロットの色の違いで表現したい場合など。 ・そのような場合には、Color Managerというノードが役に立つ。 ・Table …

【KNIME】散布図のいろいろ

・KNIMEで散布図を描く際に、ノードを"scatter"で検索すると、いくつも引っ掛かった。それぞれどう違うのか、メモしておく。 ・適当なTableを作成し、Scatter Plotノードを3種類くっつけてRunしてみた(下図)。 ・グラフを表示するには、散布図ノードを右ク…

【EXCEL】平均値の棒グラフに個別値もプロットしたい。

・各群5例の個別値と平均値をグラフに表す際に、平均値をカラム(棒グラフ)で、個別値をプロットで表したいことがある。その手順を記しておく。 ・下図の左のようにデータがまとまっている場合、平均値と群名のところを選択し、散布図を挿入すると、右側の…

【KNIME】列の値を比較したい

・データを弄っていると、2つの値の大小で場合分けしたくなることがある。 ・例えば、生徒のうち、国語のテストの点数が算数のテストの点数よりも高い生徒を抽出する、など。 ・そのような場合には、列の値を比較し、情報を与えるノード(Column Comparator…

【KNIME】シルエット図を描きたい。

・シルエット図を描きたくて、少し調べてみた。 ・以下の構成で、それっぽいグラフを描くことができた。ちなみに、k=3で、直観的にはそこそこ綺麗に分けられる筈。 ・少々癖があるのがBar Chartノードで、デフォルトだと垂直グラフなので、水平グラフにする…

【KNIME】クラスタ数を決めたい(シルエット係数)

・これまでにいくつかクラスタを扱ったが、k-meansなどの手法はクラスタ数を自分で決めなければならない。 ・何を以て「最適なクラスタ数」というのはは諸説あるが、k-means法でクラスタ数を決めるのに一般的に用いられたいるのは、エルボー法かシルエット法…

【EXCEL】外れ値のあるグラフを見やすくしたい

・極端に大きい数値を含むデータをグラフ化すると、その他の差が見づらくなることがある(下図)。例では、Eが異様に大きく、他の差がよくわからなくなっている。 ・グラフの真ん中が抜けているような表示は、一般的に不適切と言われるけれど、場合によって…

【KNIME】もっとクラスタリングしてみたい(k-Medoids)

・先のノード検索の際に出てきたk-Medoidsを使ってみる。 ・細かいことは分からないが、k-Meansのように仮想の重心を置くのではなく、データの中から重心に相当するものを選抜することでクラスタリングをするらしい。 ・特長は外れ値に比較的強いことだとか…

【KNIME】ちょっとFuzzyにクラスタリングしてみたい(Fuzzy c-Means)

・先の記事で、k-Meansで気軽にクラスタリングを試して気づいたが、似たような名前のクラスタリング手法がある。Fuzzy c-Meansとk-Medoidsだ。 ・後者はいったん置いておいて、前者を前回と同じデータに対して試した。 ・Fuzzy c-Meansノードの出力ポートを…

【KNIME】クラスタリングしてみたい(k-Means)

・KNIMEはデータ解析プラットフォームなので、Extensionを追加しなくても、デフォルトで様々な解析が可能。 ・巷で流行っている機械学習などもノードをくっつけてモデルのパラメータを与えてやればある程度実行できる。 ・今回は、クラスタリングというもの…

【KNIME】行をちょっとずらしたい

・データを弄っていると、行を一つずらしたくなることがたまにある。 ・Lag Columnノードを使うと、行をずらすことができる。 ・例えばデフォルト設定でColumn1に適用すると、一行ずらすことができる(下図)。 ・設定画面のLagは何回ずらすか、Lag interval…

【KNIME】Available Renderersで表の表示を変更したい

・先の記事で、Tableの表示を右クリック⇒Available Renderersで変更できることを記載した。 ・前回は、省略された数字を表示する目的で記載したが、数値に応じて色調やバーで表示することもできる。 ・KNIMEのワークフローのTableを扱うノードの後、表の中身…

【KNIME】Tableの数値を全桁表示したい

・EXCEL ReaderノードでEXCELからデータを読み込む際に、何桁まで読み込むことができるのか気になったので、試してみた。 ・123456789という整数に対して、100倍し続ける列と1/100倍し続ける列をEXCEL上で作成した(下図)。 ・これを、100倍列は1.23456789E…

【KNIME】セルの値でRowを分けたい

・セルの値を基準に、データを分別したいことがある。 ・例えば、生徒のテストの点数を基準に、合格と不合格を分ける場合などに適用される。 ・Numeric Row Splitterというノードでは、ある値以上、以下などを設定し、その基準に合うものを採用、合わないも…

【KNIME】現在時刻の情報を使いたい

・ファイル名などに、今日の日付や現在時刻を使いたい場合がある。 ・試しにtimeでノードを調べてみると、それっぽいものが見つかった。 ・Time Generator (legacy)というノードを実行すると、デフォルト設定で以下のように出力された。 ・StartとEndの間の…

【KNIME】XPathでデータを見やすくしたい

・前回、Webからデータを取得したものの、コードだけではデータを把握できなかった(下図)。 ・XMLはデータ構造を記述するマークアップ言語の一種であり、適切に形式を変換すれば表として読める。 ・XPathノードでは、構造化されたXMLから要素を抜き出し、…

【KNIME】GET RequestでデータをWebから釣ってきたい

・KNIMEには、Webにアクセスし、情報を釣ってくるノードが存在する。 ・特定のWebサイトに集中的にアクセスするとサーバに負荷がかかり、いろいろと不味いことになります。・スクレイピングは禁止されている場合もあるので、できるできないはきちんと調べて…

【KNIME】Column Aggregatorで集計したい

・複数の列からデータをとってきて集計したい場面がしばしばある。 ・Mathformulaを使えば可能だが、集計に特化したColumn Aggregatorを使えば、より簡単に目的の処理を実行できる可能性がある。 ・このノードでは、「どの列から」「どういう集計法で」デー…

【KNIME】String Inputをcomponent化して、ノードに変数を入力したい。

・ワークフローを作成していると、その都度ファイル名やファイルの場所を入力してflow variable化し、フローを回したくなることがある。 ・通常はノードの設定画面から弄れば良いが、なんとなくごちゃっとしていて、気持ち悪い。 ・少し弄っていると、String…

【KNIME】String Inputで簡単にflow variableを作りたい

・定まったFlow Variableを作成する際に、Table Creatorに変数を入力した後、Table Row to variableなどを使ってFlow varibaleにしていた。 ・調べてみると、String Inputというノード一つでFlow Varibaleを作成できるらしい。 こんな形で入力すると、 こん…

【KNIME】Moving Aggregationで積算値を計算したい。

・数値データの表を扱っている際に、積算値を算出したいことがある。 ・調べてみると、Moving Aggregationというノードで可能らしい(下図)。 ・Scoreの対応する行までを加算した積算値がSum(Score)列に入っている。 ・Moving Aggregationの設定は以下の通…

【KNIME】Reference Column Resoterで列を指定の順番に並べ替えたい

・表の列を何らかの順番に並べ替えたいことがある。 ・Column Resorterでできるかと思ったが、どうもしっくりこない。 ・Column Resorterを使う過程で、Reference Column Resoterなる怪しげなノードを見つけた。 ・どうもこれでできるらしい。 ・Reference C…

【KNIME】たくさんのパラメータの関係を図示したい。

・たくさんの数値データがある際に、それらの関係がどのようなものか推察する必要がでることがある。 ・散布図を描く際に、いちいちやってられないので、マトリックスで一気に可視化したい場合がある。 ・そういう場合には、Scatter Matrixノードを使うと、…

【KNIME】UngroupでListをバラバラにしたい。

・先日、データをグループでまとめるノードGroupByに関して記事にした。 ・GroupByノードを出そうとすると、KNIME検索でUngroupなるノードが引っ掛かった。 ・このノードは、List形式のセルをバラバラにして、縦にずらっと並べるノードらしい。 ・例えば、Gr…

【KNIME】Groupbyでデータを集計したい。

・共通項のあるデータを集計したり、重複を潰すのに、Groupbyというノードを使えば便利らしい。 ・使い方をメモしておく。 ・以下の表からデータを集計してみる。 ・例えば、各家庭(姓)の一番上に挙がっている名前(名)を代表者として、各家庭の平均年齢…