Anacondaの仮想環境の作成パスを設定する
Windows環境にインストールされたAnacondaで仮想環境が作成されるパスを追加します。
- anaconda では、仮想環境のパスを複数登録することができます。
Windowsのシステム環境変数に「CONDA_ENVS_PATH」を追加
- ここでは、仮想環境の保存先フォルダを「C:\Anaconda_Datas\envs」にすることにします。
- Windows> コントロール> システム> 詳細設定> 環境変数にて「システム環境変数」を追加
- 変数名:CONDA_ENVS_PATH
- 変数値:C:\Anaconda_Datas\envs
- 複数のフォルダを指定したい場合は、「;」で区切ることで可能です。
仮想環境のパスを確認する
- 「conda config --show envs_dirs」コマンドで、仮想環境のパスが追加されていることを確認します。
[annaconda prompt] (base) C:\Users\user01>conda config --show envs_dirs envs_dirs: - C:\Anaconda_Datas\envs - C:\Users\user01\.conda\envs - C:\ProgramData\Anaconda3\envs - C:\Users\user01\AppData\Local\conda\conda\envs
python仮想環境を作成
[Annaconda Prompt] conda create -n "test1" python=3.8 activate "test1" deactivate [:contents]
- 作成されました。
データ分析~機械学習までの道のり(どこまでやるの!?)
あくまで、中小企業のデータ分析したい場合について:
- 機械学習というキーワードが独り歩きしていますが、実際の仕事でデータを整理しないければならない場合、どういった考え方で進めるか・どこまでやるべきかについて考察しました。
- 結論として、データ分析には、いくつかの段階に渡り、その延長線上に機械学習があります。
- このように整理しておくことで、利用部門から相談を受けたとき、情シス担当者の頭の中では、どの段階までを想定して対応すれば良いか、という話になります。それを探るために利用部門にインタビューすることで、対応の方向性を判断していくことができます。
進め方
簡易データ集計 ~ KPI設定
- データを集める、データ構造を整理する(足りない項目を補う、重複データを削除する)
- Excelでピボットテーブルや基本的な集計を行ってみる。 (python+Pandasで、基礎統計量を取ってもOK。)
- 業務目的に合致するKPIを検討、実際に計算してみる。 (試行錯誤が必要な場合がある。)
- 時系列・セグメント分け等のKPI値の変化を評価してみる。(試行錯誤が必要な場合がある。)
- 評価軸が増えるに従って、生成されるKPIデータ量(パターン)が膨大になる。
- 膨大なパターンの中から、本当に業務上の意味があるパターンを発見するためには、業務内容や現場の事ををより理解していることが好ましい。
データの可視化と共有
- 一回限りのニーズなのか、業務サイクルの中で繰り返し発生するニーズなのか。
- 繰り返し発生する場合、BIツール導入を検討すると良い。
▲ ここまでで目的を達成できるならば、これ以上の機械学習まではいらない。
- 組織内データの場合、そのデータの属性はある程度は予想できることが多い。KPI設定やBIツールでの可視化まで行えれば目標達成となるケースが多いと思われます。
▼ ここから先に、やっと機械学習が登場
本当に機械学習を用いないといけないような業務課題なのかどうか?
PythonでExcel操作する(openpyxl)
Windows環境にインストールされたPythonでExcel操作するライブラリ(openpyxl)
GitHub(ericgazoni / openpyxl)
Anaconda Promptからjupyterthemesをインストールします。
- 以下のコマンドでインストールします。
[Anaconda Prompt] (test1) C:\Users\user01>pip install openpyxl
openpyxlの公式使い方サイトはこちら
- Excelファイルを作成(サンプルコード)
from openpyxl import Workbook wb = Workbook() # grab the active worksheet ws = wb.active # セルに直接データを配置することができます ws['A1'] = 42 # 行にも配置できます ws.append([1, 2, 3]) # Pythonデータ型は自動でdatetime型に変換されます ws['A2'] = datetime.datetime.now() # Excelファイルを保存します wb.save("sample.xlsx")
JupitorNoteBookの見た目を変える(jupyter-themes)
Windows環境にインストールされたAnnacondaのJupitorNoteBookのテーマを変更するための手順
GitHub(dunovank / jupyter-themes)
Anaconda Promptからjupyterthemesをインストールします。
- 以下のコマンドでインストールします。
[Anaconda Prompt] (test1) C:\Users\user01>pip install jupyterthemes
- リストを表示
[Anaconda Prompt] (test1) C:\Users\user01>jt -l Available Themes: chesterish grade3 gruvboxd gruvboxl monokai oceans16 onedork solarizedd solarizedl
- テーマを適用してJupitorを起動。個人の感想ですが「oceans16」がブラック系テーマでテキストのハイライトが良さそう。
[Anaconda Prompt] jt -t oceans16 jupyter notebook
- デフォルトテーマに戻す
[Anaconda Prompt] jt -r jupyter notebook
別コンピュータのJupitorNoteBookに接続したい
Windows環境にインストールされたAnnacondaのJupitorNoteBookを、別コンピュータから利用するために必要な手順です。
Annacondaホスト側
Anaconda Promptからjupyter notebookのコンフィグファイルを作成します。
[Anaconda Prompt] (test1) C:\Users\user01>jupyter notebook --generate-config
[jupyter_notebook_config.py] ## The IP address the notebook server will listen on. #c.NotebookApp.ip = 'localhost' --> 以下のように書き換えてください。 c.NotebookApp.ip = '0.0.0.0'
- Anaconda Promptから、[jupyter notebook]を再起動します。
アクセスに必要なtokenを含んだjupitornotebookへのURLが表示されます。このURLにリモートPCのブラウザからアクセスすることができます。
[Anaconda Prompt] (test1) C:\Users\user01>jupyter notebook [I 10:06:26.772 NotebookApp] Serving notebooks from local directory: C:\Users\user01 [I 10:06:26.772 NotebookApp] The Jupyter Notebook is running at: [I 10:06:26.774 NotebookApp] http://[Host名]:8888/?token=c7bf022cfb45012eNo368b5d87b5366f57f01lq5a95f27b6 [I 10:06:26.774 NotebookApp] or http://127.0.0.1:8888/?token=c7bf022cfb45012eNo368b5d87b5366f57f01lq5a95f27b6 [I 10:06:26.775 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [C 10:06:26.842 NotebookApp] To access the notebook, open this file in a browser: file:///C:/Users/user01/AppData/Roaming/jupyter/runtime/nbserver-5564-open.html Or copy and paste one of these URLs: http://[Host名]:8888/?token=c7bf022cfb45012eNo368b5d87b5366f57f01lq5a95f27b6 or http://127.0.0.1:8888/?token=c7bf022cfb45012eNo368b5d87b5366f57f01lq5a95f27b6 302 GET /?token=c7bf022cfb45012eNo368b5d87b5366f57f01lq5a95f27b6 (192.168.xx.xx) 0.00ms
リモートPC側
- リモートPCのブラウザから[http://[Host名]:8888]にアクセスし、tokenを入力します。
- ログイン成功