Noteableは、Jupyter Notebook の代替手段の1つで、クラウドベースのノートブック プラットフォームです。
データ分析やデータサイエンス、機械学習などのタスクを、Noteable上のノートブックで実施することができます。
クラウドベースということもあり、リアルタイムで共同作業をすることもできるため、チームや組織にとって非常に便利です。
個人でも、ネットさえ繋がっていれば、Noteableにログインすることで、いつでも作業を再開することができます。
さらに、CSVやJSONファイルに対するSQLクエリの作成、PythonとSQLを同じノートブックで使用するなどの機能があります。
似たようなクラウドベースのノートブック プラットフォームはたくさんあります。
- Google colab https://colab.research.google.com/
- Kaggle https://www.kaggle.com/code
- Deepnote https://deepnote.com/
- Cocalc https://cocalc.com/features/jupyter-notebook
- Saturncloud https://saturncloud.io/
- Datalore https://www.jetbrains.com/datalore/
他にも、Microsoft Azure ノートブックやAmazon SageMaker ノートブックなど、クラウドの開発環境と結びついたものが有名です。
どれも似たようなものですが、少し違いがあります。
Noteableは、SQLが使え、さらにデータ可視化機能も充実しています。要は、EDA(探索的データ分析)が非常に楽にできます。
今回は、Noteableの簡単な使い方について説明します。
ちなみに、今現在(2023年7月11日現在)、NoteableはChatGPTのプラグインもあり、ChatGPT上でNoteableを実行することができます。別の機会にお話しします。
Contents
Noteableアカウントの作成
先ずは、Noteableのウェブサイト(https://noteable.io/)にアクセスし、アカウントを作成します。
Noteableのウェブサイトの右上に「Sign in/up」をクリックします。
アカウント作成にはメールアドレスとパスワードが必要です。Googleアカウントなどをお持ちの方は、そちらで十分です。
アカウント作成が完了すると、Noteableの操作画面に遷移します。
Noteable上でノートブックを新規に作ろう
ノートブックの作り方は幾つかあります。
例えば、以下のように「左下」にある「+Create」(もしくは「+Add/Create」)から作成するのが簡単です。Notebook Name を設定すると作成されます。
Jupyter NotebookやGoogle colabなどのノートブックと基本同じで、ノートブックは入力セルと出力セルで構成されます。何も実行していない状態では、入力セルしかありません。
ノートブックの入力セルに入力し実行しよう
入力セルに入力できるのは、次の3つです。
- Python ( or R)
- SQL
- Markdown
他のノートブック環境と大きく異なるのは、デフォルトでSQLが使えることです。
入力セルの切り替えは、セルの左上で変更します。
コード入力は基本Pythonですが、KernelをRに変換すると、Rでのコーディングができます。
入力セルを実行するときは、セルの左下の「▶」をクリックします。
入力セルの左側に表示されている「+」をクリックすると、新たな入力セルが生成されます。
ライブラリーのインストール
ライブラリーフリーを謳っている(???)だけあり、ライブラリーのインストール作業をする必要が基本なく(少なくとも私が使っている限りでは、ですが……)、そこで躓くことがなく非常に快適です。
しかし、それにも限界があるます。
Noteableでは、プロジェクトにrequirements.txtファイルを作成し追加(upload)することで、pip経由でPythonのライブラリーをインストールできます。
numpyとpandasはデフォルトで使えるので、本当は記載する必要はありませんが、例えば、最新バージョンのnumpyとpandasをインストールする場合の、requirements.txtの記載例です。
numpy pandas
特定のバージョンを指定する場合は次のようになります。
numpy==1.20.3 pandas==1.3.4
requirements.txtの記載ルールの詳細は、以下を参考にしてください。
Requirements File Format
https://pip.pypa.io/en/stable/reference/requirements-file-format/
後ほど、PythonのAutoML(自動機械学習)パッケージであるTPOTのモジュールを使い、予測モデルを構築します。
そのため、「tpot」をインストールしてある環境が必要です。
今回は、以下のように記載されたrequirements.txtを作成し、Noteableに追加(upload)します。
tpot
Noteableにrequirements.txtを追加(upload)するときは、プロジェクト名(例では「My First Project」)の右隣にある「・・・」をクリックし、「Upload Files」を選択しファイルをアップロードします。
環境構築が終了すると、アカウント作成時のメールに連絡がきます。
メール連絡が来たら、requirements.txtが反映されたKerneへ変更しましょう。
ノートブックページの左の設定サイドバーにアクセスし、ドロップダウンメニューから “Project scoped kernel “を選択します。
これで、requirements.txtに記載したライブラリーが使えます。
予測モデル(回帰問題)を作ってみる
今回はscikit-learnから提供されているカリフォルニアの住宅価格データセットを使います。
【今回使用】
scikit-learnから提供されているサンプルデータセット
https://scikit-learn.org/stable/datasets/index.html#california-housing-dataset
データ数は20640件です。
目的変数は、カリフォルニアの区画ごとの住宅価格の中央値です。
特徴量(説明変数)は、以下の8個です。
項目名 | 詳細 |
MedInc | 区画の収入の中央値 |
HouseAge | 区画の築年数 |
AveRoom | 区画の家の部屋数の平均値 |
AveBedrms | 区画の寝室の平均値 |
Population | 区画の人口 |
AveOccup | 区画の平均入居率 |
Latitude | 区画の緯度 |
Longitude | 区画の経度 |
データセットを読み込み、読み込んだ特徴量Xを見てみます。
さらに、基本統計量を見てみます。
線形回帰モデルで、予測モデルを構築してみます。テストデータの結果(決定係数R^2)を出力しています。
決定係数(0以上1以下の数値をとり、大きいほど良い)が0.575…と、予測モデルとしてはそれほど良くはないです。
PythonのAutoML(自動機械学習)パッケージであるTPOTのモジュールを使い、予測モデルを構築してみます。
決定係数が0.830…と、予測モデルの精度がアップしたのが分かります。
ノートブックの共有
ノートブックの共有は非常に簡単です。
Noteableの操作画面の上にある「Share」をクリックし、共有する相手を設定するだけです。
まとめ
今回は、Noteableの簡単な使い方について説明しました。
説明した内容は、最低限のことでした。
Noteableのサイトに記載されている主な特徴を、最後に列挙します。
データとコンピューティングへの簡単なアクセス
ツールを簡素化し、チームが最善の仕事に集中できるようにすることで時間とお金を節約します。
何にでも接続
BigQuery、Snowflake、Databricksなどとのネイティブな統合を特長とし、どこにデータが格納されているかに関係なく、あなたのデータにシームレスに接続します。さらに、外部APIに簡単かつ安全に接続することも可能です。
洞察への最速の道
Pythonノートブック内でのネイティブSQLサポートは、協力を犠牲にすることなく、あなたが望むようにデータを操作する柔軟性を提供します。
リソース管理
自分自身のコンピューティングを設定し、チーム間で資格情報や重要なデータを共有します。
No-Codeビジュアライゼーション
コードレベルに関係なく、最大のビジュアライゼーションライブラリを使用してデータをストーリーに変換します。
共有とコメント
特定のデータポイントまで何でもコメントすることで、より深い協力を実現します。
ライブコラボレーション
どこからでも一緒に、同時に作業することができ、作業を失う心配はありません。
スケジューリング
ノートブックを自動的に実行するようにスケジュール設定できます。
Gitサポート
NoteableはリモートのGitリポジトリのクローンから作業を行うことができます。
データアプリとダッシュボード
簡単に作成、共有、カスタマイズが可能な公開ノートブックでデータのストーリーを共有します。
今現在(2023年7月11日現在)、NoteableはChatGPTのプラグインもあり、ChatGPT上でNoteableを実行することができます。
別の機会にお話しします。