第4回富士フイルムコンペ参加記録(Q3: 6位)
第4回目となる富士フイルム主催データ分析コンペ(Brain(s))に参加したので、忘れないうちに細々したことを記録しておこうと思います。
本やらウェブテキストやらでデータ分析の勉強しただけで実践はまだだったのですが、Kaggleは画像コンペばっかでとっつき辛いし、ツヨツヨデータサイエンティストとまともに戦える気もしませんでした。
そんなとき学生限定*1の富士フイルムテーブルコンペを知って参加しました。
コンペはathleticsというプログラミングスキルチャレンジプラットフォームで行われました。
エンジニア用の就活用コーディングテストみたいな側面もあるらしく、競プロに近いチャレンジから分析系チャレンジまで幅広く扱っているみたいです。
今回参加したのは富士フイルムが主催するテーブルデータコンペで、低分子化合物の化学式(SMILES)から各種物性(記述子)を計算し、溶解度や変異原性を予測するというケモインフォマティクス分析のお題でした。
記述子や分子情報の計算には有名なRDKitというライブラリを主に使いました。
提出モデル(Q3)
記述子テーブル → ランダムフォレスト、NN ...①
Morgan FingerPrint テーブル → ランダムフォレスト、NN ...②
記述子テーブル、①、 ②、①+② → ランダムフォレストStacking
accuracy
Final score: 0.848
Final PublicLB: 0.87096
Final PrivateLB: 0.6574
モデル作成までの道のり(Q3)
- データ取得*2*3*4
複数のデータセットをまとめた後で一度は精度が落ちたが、Molオブジェクトへの変換時にMolStandardizeモジュールによって標準化・脱塩・中和処理を行うことで逆に精度は向上した(+0.03くらい) - 特徴量作成
RDKitから200カラムの記述子と2048カラムのMorgan FingerPrintを、Mordredから1800カラムくらいの記述子を計算*5
Q2で作成した溶解度予測モデルの値を追加
他の特徴量エンジニアリングはLeaderBoardが非公開になった後の数日で急いで行った(後述) - 特徴量選択
Borutaで記述子テーブルを706カラムまで削減
FingerPrintは特にいじらなかった - Train
記述子テーブルとFingerPrintテーブルから、ランダムフォレストとNNで予測(計4列)
モデルはBayesianOptimizationでハイパラチューニングした
単独モデルの精度はそれぞれ0.8超えたあたりくらい - Stacking
記述子テーブルに、4列の予測結果(0 or 1)とその合計値(最大4)を追加し、ランダムフォレストで予測*6
記述子テーブルを付け足す必要があったかどうかは謎
情報多い方がモデル君も嬉しいだろうと思ってつけた
過誤を起こしやすい構造を学んでほしかった
スコア推移
RDKit記述子のみ、ランダムフォレスト単独モデル
CV score, 0.816; PublicLB, 0.58くらい; 1回目PrivateLB, 0.51852
↓
アンサンブルモデル追加・データ追加・ハイパラ調整(パラメータ設定のエラーやSMILESの重複が残っていたので、それも除去)
score, 0.810; PublicLB, 0.8387
↓
データ追加
score, 0.841; PublicLB, 0.77419
↓
標準化・脱塩・中和
score, 0.840; PublicLB, 0.87097; 2回目PrivateLB, 0.62037
↓
特徴量作成
score, 0.848; PublicLB, 0.87097; 最終PrivateLB, 0.6574
LeaderBoard非公開後に以下の特徴量を追加したことで+0.034
1. Q2溶解度とMordredのLogS予測値との差分
2. 5次元にPCA圧縮した結果
3. kmeansでクラスタリングした結果(n=5)*7
4. base estimatorsのクラスラベル合計値(大きい値ほど陽性っぽいと予測)
所感
- Q1–Q3まで3問あり、ケモインフォマティクスに慣れない人もステップアップして取り組める内容で優しさを感じた。
- Q2はPublicLBが最終スコアとなるため高度な過学習抑制は要求されておらず、俺の考えた最強モデルバトル!みたいな様相。
- Q3はビジネスタスク寄りで、手法やデータセットの制限も特になかったのでしっかり取り組めば実力が確実に付けられる内容だった。
- モデルとソースコードをアップロードして採点する方式で(10MB制限)、普段メモリや環境に気を使っていないツケが回ってきたため、これは今後の課題。
全体を通してコードがぐちゃぐちゃになったり勘違い実装があったりしたので、Kaggleで勝つ本の購入検討中です。
が、Stackingのリークなどは自分で実装しないと実感しなかったと思うので、勉強と実装のバランスはこれからも大事にしていきたいと思いました。
あらためてスコア推移を整理してみると手持ちデータの検証精度・PublicLB・PrivateLBの乖離が非常に大きく、如何にモデルを汎化させられるかが鍵だったと思います。
また、Brain(s) slackで日々情報交換が行われており、PublicLBに使用されるデータ数が少ないことが予想されていました。
コンペ最終日付近はスコアが伸びなくても手元のスコア伸びるのを信じてチマチマ頑張ったのが効いてくれて報われました。
入賞するとは思わずにzoom開催の表彰式をぼけーっと聞いてたら自分の名前が挙がっており、めちゃくちゃに慌ててしまいました。
頭が真っ白になってしまって、自分の最後のPrivateスコアと順位と賞品を覚えていないです。すみません。確か6位でした。いいカメラが貰えるらしいです。
初参加コンペで初入賞で嬉しいです。
これをきっかけに、これから色々なコンペに出てみようと思いました。
参考
コンペ後に公開された他の参加者の取り組み例
- Chem Infomatics系の基礎事項まとめ(富士フィルム Brain(s)コンテスト参加記) - MosaasoMの日記
- 富士フィルムコンペ総合1位解法・アプローチ(化合物の溶解度予測2位、変異性予測2位) : んごんごブログ
何かと便利なサイト
*1:年齢制限ギリギリでした。なんか申し訳ない。
*2:http://doc.ml.tu-berlin.de/toxbenchmark/ 参加者全員に渡されたデータ
*3:https://pubs.acs.org/doi/abs/10.1021/ci300400a
*4:https://www.sciencedirect.com/science/article/pii/S1383571820300693
*6:このとき学習データ全体を使ってしまったので、リークしてしまった。あとからOut-of-FoldやHoldoutTSの手法を知ったので、以後気を付けたい。
*7:testはtrainで作成したモデルからの予測値を用いた
pyenvからminiconda環境を構築
普段はpipを使うのですが、condaを使う機会があったので備忘録として残します。
バイオインフォマティクス系の分析はcondaにしかパッケージがないことがあるので、pipできないとconda競合に気をつけないといけません。
pyenvからconda環境を入れることで、なにか困っても再構築が楽になります。
ついでにcookiecutterも使って分析しやすいディレクトリを構成します。
# $ pip install cookiecutter $ pyenv install miniconda3-latest $ pyenv shell miniconda3-latest $ condo create -n [env_name] python=[python_version] $ condo activate [env_name] $ conda install jupyter $ ipython kernel install --user --name=[env_name] --display-name=[env_name] # if you don’t need this env, type command ‘$ jupyter kernelspec uninstall [env_name]’ $ cookiecutter https:github.com/drivendata/cookiecutter-data-science You've downloaded /Users/YOUR_NAME/.cookiecutters/cookiecutter-data-science before. Is it okay to delete and re-download it? [yes]: yes project_name [project_name]: [env_name] repo_name [ml_project]: author_name [Your name (or your organization/company/team)]: [your_name] description [A short description of the project.]: Select open_source_license: 1 - MIT 2 - BSD-3-Clause 3 - No license file Choose from 1, 2, 3 (1, 2, 3) [1]: 1 s3_bucket [[OPTIONAL] your-bucket-for-syncing-data (do not include 's3://')]: aws_profile [default]: Select python_interpreter: 1 - python3 2 - python Choose from 1, 2 (1, 2) [1]: 1 $ cd [env_name] # if you need requirements file for pip, type command ‘$ conda list --export > requirements.txt’ # if you want to create env from file, type command ‘$ conda env create -f=[env_name.yml]’ $ conda env export -n [env_name] > [env_name.yml] # edit gitignore file ‘$ vim .gitignore’ git init
ただし、この方法だとcondaに存在しないパッケージはsystemを検索して利用する罠があります。
とくに、conda install jupyterせずにjupyterカーネルを追加すると、import *** はsystemを検索してしまいます。
途中でjupyterをinstallしているのはそのため。
新薬の情報を元に、製薬業界を分析する
製薬企業の特徴を新薬から探る
就活を始める方で、どのように業界研究すればよいかわからない人って結構いると思います。
私もその1人で、まずは製薬に絞って就活しようと思い立ったのですが、それでも膨大な数の企業があって時間と労力をかけなければ俯瞰的な視点を持つことは難しそうでした。
製薬企業のセグメントは、資本(内資・外資)と事業領域(新薬・ジェネリック)の軸の上に、疾患領域をどのようにターゲティングするかでさらに細分化されるようです*1。
大まかな分類は調べれば出てきますが、最新のデータを元にした細かな業界研究は見当たらなかったので、自分で分析することにしました。
その際、R&Dの職に就きたいという希望があったので、新薬の情報を元に、製薬企業の分類をすることにしました。
データ集計、処理
概要
KEGG DRUGに2000年以降に上市された新薬が記載されています。
承認日, 薬効, 分類ID, 有効成分, 商品名, 会社名などの列に対して、630個の新薬が列挙されています*2 *3。
有効成分やら商品名だけでは何の薬かぱっと見わからないものも多いので、薬効分類を併記したいです。
そのために、分類IDの対応表を作成しました。
分類IDは4桁数字からなるレコードで、大・中・小・細小と薬品を分類しています*4。
このデータはjsonファイルでダウンロードすることができたので、Pythonで分類IDごとに分類名称を対応させることにしました。
元の表と薬品分類対応表をスプレッドシート上で合体させ、Tableauで可視化することにしました*5。
jsonファイルのパース
jupyter notebookを用いて、次のようなコードでpandas DataFrameに変換しました。
import json file = open('jp08301.json') data = json.load(file) from pandas.io.json import json_normalize df = json_normalize(data=data,record_path=['children','children','children','children'],meta=[['children','children','children','name'],['children','children','name'],['children','name']]) df = df[['children.name','children.children.name','children.children.children.name','name']] df.rename(columns = {'children.name':'first','children.children.name':'second','children.children.children.name':'third','name':'fourth'}, inplace=True) df['first'] = df['first'].str.replace('^[1-9]+', '').str.strip() df['second'] = df['second'].str.replace('^[1-9]+', '').str.strip() df['third'] = df['third'].str.replace('^[1-9]+', '').str.strip() df[['code','fourth']] = df['fourth'].str.split(' ', expand=True)
json_normalizeでパースしました。
ネストされまくっているので、record_pathとmetaで欲しいデータを指定しています。
また、rename後、余計な文字を削除しました。
結果は次のような表になります。
可視化
Google Driveとtableauと繋げれば、わざわざcsvファイルをアップロードしなくてもデータを整形できちゃいます。
企業名に表記揺らぎや今はもう統合された企業があったので、前処理としてグループ化だけしました。
細かい操作もできて、色々痒いところに手が届く仕様にしているようで、こういう趣味のデータを可視化する分には十分な機能を持っている印象です。
最近流行りのtableauの分厚い教本がありますが、買わなくても直感的に操作できるのがいいところだと思います。
可視化するまでもなかったのですが、近年の上市新薬腫瘍用薬, 中秋神経系用薬が多かったです。
薬品分類ごとの企業割合から、一部省略していますが、がん領域だとMSD, 中外, ファイザー, ノバルティス, アストラゼネカが強いことがわかりました。
また、代謝性医薬品(皮下注射用の医療用医薬品など)は、サノフィ, 協和キリン, ジョンソンエンドジョンソンなども強そうです。
また、企業ごとの新薬承認数も可視化しました。
MSD, ファイザー, グラクソ, ノバルティスなど、外資が強いようです*6。
有効成分がモノクローナル抗体の薬品は、分子標的薬です。
名前が〜〜マブとなっている薬を列挙しました。
腫瘍用薬で分子標的薬は圧倒的にMSD, 中外が強いみたいです。聞いたことある名前がちらほら入ってますね。
一例として、中外製薬が出している新薬を列挙しました。
少し前は領域横断的に新薬を出していましたが、近年でがん領域に特化し始めたことがわかります。
一番新しい新薬のロズリートレクはつい最近販売が開始されたので、ニュースになりましたね。
www.chugai-pharm.co.jp
pipenvのパッケージがバージョン指定で入らず苦労してる話。
macでpipenvを使いたい
仮想環境とかよくわかんないけど、pipenvは楽そう。
今までの仮想環境は削除する(Qiitaの記事を参考にした)。
いい感じに仮想環境構築して、「Python 機械学習プログラミング 達人データサイエンティストによる理論と実践 」を読み進めたい。
[問題点] pipenvでバージョン指定できない
パッケージの依存関係の問題なのか、最新版のパッケージを入れることはできても、ダウングレードして入れることができていない。
早急に解決したいが、取り急ぎの備忘録として公開する。
[追記]下記オプションで(一部)解決した。
$ pipenv install --sequential
python3を使う
$ pipenv --python 3 Warning: Python 3 was not found on your system… You can specify specific versions of Python with: $ pipenv --python path/to/python
$ brew ls python3 ... /usr/local/Cellar/python/3.7.3/bin/python3.7 ...
$ pipenv --python /usr/local/Cellar/python/3.7.3/bin/python3.7 Removing existing virtualenv… Creating a virtualenv for this project… ... ✔ Successfully created virtual environment! Virtualenv location: /Users/myname/.local/share/virtualenvs/python-machine-learning-book-2nd-edition-eAx8UWz8
仮想環境構築とパッケージのインストール
パッケージのバージョンを指定するとPipfile.lockでエラーがでたので、取り急ぎ最新バージョンで(190402)。
$ pipenv install NumPy SciPy scikit-learn matplotlib pandas Creating a virtualenv for this project… Pipfile: /Users/myname/python-machine-learning-book-2nd-edition/Pipfile Using /usr/local/Cellar/pipenv/2018.11.26_2/libexec/bin/python3.7 (3.7.3) to create virtualenv… ⠸ Creating virtual environment...Already using interpreter /usr/local/Cellar/pipenv/2018.11.26_2/libexec/bin/python3.7 Using real prefix '/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7' New python executable in /Users/myname/.local/share/virtualenvs/python-machine-learning-book-2nd-edition-eAx8UWz8/bin/python3.7 Not overwriting existing python script /Users/myname/.local/share/virtualenvs/python-machine-learning-book-2nd-edition-eAx8UWz8/bin/python (you must use /Users/myname/.local/share/virtualenvs/python-machine-learning-book-2nd-edition-eAx8UWz8/bin/python3.7) Installing setuptools, pip, wheel... done. ✔ Successfully created virtual environment! Virtualenv location: /Users/myname/.local/share/virtualenvs/python-machine-learning-book-2nd-edition-eAx8UWz8 Creating a Pipfile for this project… Installing NumPy… Adding NumPy to Pipfile's [packages]… ✔ Installation Succeeded Installing SciPy… Adding SciPy to Pipfile's [packages]… ✔ Installation Succeeded Installing scikit-learn… Adding scikit-learn to Pipfile's [packages]… ✔ Installation Succeeded Installing matplotlib… Adding matplotlib to Pipfile's [packages]… ✔ Installation Succeeded Installing pandas… Adding pandas to Pipfile's [packages]… ✔ Installation Succeeded Pipfile.lock not found, creating… Locking [dev-packages] dependencies… Locking [packages] dependencies… ✔ Success! Updated Pipfile.lock (46c561)! Installing dependencies from Pipfile.lock (46c561)… 🐍 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 11/11 — 00:00:02 To activate this project's virtualenv, run pipenv shell. Alternatively, run a command inside the virtualenv with pipenv run.
仮想環境に入る
$ pipenv shell Launching subshell in virtual environment… bash-3.2$ . /Users/myname/.local/share/virtualenvs/python-machine-learning-book-2nd-edition-eAx8UWz8/bin/activate (python-machine-learning-book-2nd-edition) bash-3.2$
(python-machine-learning-book-2nd-edition) bash-3.2$ python --version Python 3.7.3
Pythonのシェルに入る
>>> import numpy as np >>> print(np.arange(10)) [0 1 2 3 4 5 6 7 8 9]
パッケージのバージョンを指定する
$ pipenv run pip freeze cycler==0.10.0 kiwisolver==1.0.1 matplotlib==3.0.3 numpy==1.16.2 pandas==0.24.2 pyparsing==2.3.1 python-dateutil==2.8.0 pytz==2018.9 scikit-learn==0.20.3 scipy==1.2.1 six==1.12.0
実際に欲しいのは下記だが、エラーがでる(解決済み)。
NumPy==1.12.1
SciPy==0.19.0
scikit-learn==0.18.1
matplotlib==2.0.2
pandas==0.20.1
ためしにpandasだけ入れようとしても、
$ pipenv install pandas==0.20.1 Installing pandas==0.20.1… Adding pandas to Pipfile's [packages]… ✔ Installation Succeeded Pipfile.lock (a71011) out of date, updating to (46c561)… Locking [dev-packages] dependencies… Locking [packages] dependencies… ✔ Success! Updated Pipfile.lock (a71011)! Installing dependencies from Pipfile.lock (a71011)… An error occurred while installing ... Installing initially failed dependencies… ... ERROR: ERROR: Package installation failed... ☤ ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/1 — 00:00:05
入らない。
pipenv.exceptions.InstallError
これをどうにかしないといけないようなので、引き続き調べる。
[190403追記] pipenv install --sequentialする
依存関係のエラーらしい。
一部は--sequential optionで一つずつ入れられた。
$ pipenv --rm Removing virtualenv (/Users/myname/.local/share/virtualenvs/python-machine-learning-book-2nd-edition-eAx8UWz8)… python-machine-learning-book-2nd-edition $ rm Pipfile Pipfile.lock
$ pipenv install --sequential SciPy==0.19.0 Installing SciPy==0.19.0… Adding SciPy to Pipfile's [packages]… ✔ Installation Succeeded Pipfile.lock (0c5e59) out of date, updating to (91cb02)… Locking [dev-packages] dependencies… Locking [packages] dependencies… ✔ Success! Updated Pipfile.lock (0c5e59)! Installing dependencies from Pipfile.lock (0c5e59)… 🐍 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 3/3 — 00:00:11 To activate this project's virtualenv, run pipenv shell. Alternatively, run a command inside the virtualenv with pipenv run.
ただし、入れられないものもあり、それらはエラーがでる。
$ pipenv install --sequential matplotlib==2.0.2 Installing matplotlib==2.0.2… Adding matplotlib to Pipfile's [packages]… ✔ Installation Succeeded Pipfile.lock (a671fc) out of date, updating to (ed87c2)… Locking [dev-packages] dependencies… Locking [packages] dependencies… ✘ Locking Failed! ...
ただし、pipenv run pip freezeでは入っておらず、実際にimportもできない。
[190508追記] numpy errorだった
numpy1.12はpython3.7に未対応らしく、pyenvでpythonのバージョンも管理すれば解決できそう。
この記事を参考にpyenvでpython3.5.7を入れておく。
$ pipenv --python 3.5.7
続いてjupyterにkernelを追加する。
仮想環境に入り
(test) $ pipenv shell
(test) bash-3.2$ ipython3 kernel install --user --name=test --display-name=test
(test) bash-3.2$ jupyter kernelspec list test /Users/myname/Library/Jupyter/kernels/test python3 /usr/local/share/jupyter/kernels/python3
以後はこの仮想環境がjupyter kernelに追加されるので、外からjupyter notebookを開いてもOK。
TwitterでBTCを投げ銭できる“Tippin”をやってみた
“Tippin”とは?
「tippin.me」はLightning Network(LN)普及のための個人プロジェクトです。
Tippin (@tippin_me) | Twitter
Lightning Networkとはビットコインをやり取りするための新しいシステムです。
これを用いることで、素早く・簡便・低コストなビットコイン送受金が可能となります。
Tippin.meは謂わばLightning Networkを用いた「チップジャー」というコンセプトみたいですね。
Tippin.meは実際にはTwitterの拡張機能となっていて、Twitterユーザーならだれでも利用することができます。
(ただし、送受金利用にはTippin.meアカウントを作っている必要があります。)
「RT」、「いいね」に加えて「Tip」が誕生したということですね。
マイクロペイメントの活用法としては申し分ないんじゃないでしょうか。
実際に使ってみた(送金のやり方)
Wallet準備
まずはLightning Networkを使えるWalletを用意します。
公式ではEclair Walletとbluewalletが推奨されていたのですが、どうやらbluewalletが使いやすいらしいので、これをスマホにインストール。
BTC walletとLightning wallet両方作ってしまいます。
bluewalletにBTC送金、Lightning walletにRefillする
仮想通貨口座からBTCをbluewalletのwalletに送金します。
普通にいままでと同じ方法です。
10分くらいかけて0.001BTC着金しました。
Lightning walletのmanage fundsから…
Refillを選び…
手数料込みなので若干少なめに設定して、Create → Sendします。
ここまではBTCの送金と変わらないので、やはり遅いですが、10分くらいで無事口座振替完了。
tippinで送金する
Chrome 拡張機能、または、Firefox アドインを入れます。
すると、twitterのアクティビティ欄に⚡️マークが出てきました。
せっかくなのでサーバー代と思って公式に送金してみます。
現在、100satoshiは$0.00384735(0.43円)くらい。
送れた。少なくてスマンやでw
受金にかかる時間はわかんないけれど、割と簡単に送金できました(きもちいい)。
まとめと感想
Tippinとbluewalletの組み合わせでマイクロペイメントが手軽にできました。
あくまでもTippinはtwitter拡張機能という感じで、実際にはLightning Networkがかなり便利。
Lightning NetworkでやりとりするためにBTCをそれ専用のWalletに移さなければならないので、bluewalletを使いました(bluewalletはUIもモダンでいい感じですね)。
bluewalletのmarket placeというボタンを押すと、Lightning Networkを利用できるいろんなサービス(Lappというらしい)も見られます。
欲を言えば、tippinに既定の設定をつけて、⚡️押すだけで100sats送金できるとかしてほしいですね。
あと、tippinって検索するとtippin.bizとかいう怪しいサイトがトップに出てきてなんか怖かったです。
最後に
ここまで読んでくれてありがとうございました。
受金されるとどうなるかも知りたいので、よければtipお願いします(すっとぼけ)
都内に個人でウェット実験ができるシェア研究室がオープン(Beyond BioLAB TOKYO)
2/5付のニュース記事で紹介されたBeyond BioLAB TOKYO
シェアウェットラボが2月都内にオープンするらしい。
入居予定者数は15ほどで、基本的にはスタートアップやベンチャー向けのようだが、1日限定の個人利用可能も可能とのこと。
ベンチ単位で借りれるらしいが、共通機器やP2設備もあって良さげだね。
PCRはできそうw(ThermoのProFlexかな?)
こういうラボで自分の実験ができるのも良いけど、コミュニティを広げることができるのも魅力的ですね。
特許関係で出入りが難しいベンチャーとかもあるかもだけど。
今までは都内でバイオ実験ができる施設は渋谷のFabLabくらいしかなかったけど、こういう選択肢が今後増えていくに期待。
2/8追記
バイオハッカージャパンで記事になってます。
実際に行ってきた感想記事なので、パワーがあるw
biohacker.jp
Jupyter notebookでMySQL(とMongoDB)の演習をする
東大松尾研のデータサイエンティスト育成講座を以前に紹介しました。
少しずつ進めていると、8章からデータベースのお話に。
ただし、現行のjupyter notebookではプログラムが動かないらしく、初心者が実行環境を設定するのは大変そう。
こちらの記事でも触れられていましたが、解決方法までは載っていなかったので、備忘録として記事にしておきます。
環境
$ sw_vers >ProductName: Mac OS X >ProductVersion: 10.14.1 >BuildVersion: 18B75
$ python3 --version >Python 3.7.0 $ jupyter notebook --version >5.6.0
特にAnacondaとかは入れてないです。
jupyter notebookもpipして入れています。
1. MySQL, PyMySQLのインストール
ターミナルで、次のように打ち込む。
$ brew install mysql
$ pip3 install PyMySQL
以前にMySQLを中途半端に実行していていて色々なエラーが出たので(恨むぞプロ門...)、クリーンインストールしてしまうのが結局早かった。。。
2. MySQLサーバーの立ち上げ
ターミナルで、次のように打ち込む。
$ sudo mysql.server start
MySQLインストール後の初期設定はこちらの記事を参考にしました。
データベースの安全管理上、権限がないです、とエラーが出る場合が多いので、基本sudo付きで実行します。
色々聞かれるy/n質問は、全てyesで良いと思います。
ここまでやったら、jupyter notebookに戻って進めます。
3. jupyter notebookとMySQLを接続する
ターミナルで実行します。
$ jupyter notebook
自動でjupyter notebookが立ち上がるので、松尾研資料(data science)8章と、こちらの記事を参考にしながら接続。
これで、jupyter notebookを用いてMySQLコードを実行することができます。
以上です。
お読みいただきありがとうございました。