IT管理のマメ知識

ITについて個人の感想をアウトプットしているブログ

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]


  • 作成されました。

f:id:persimoon:20210103152854j:plain

データ分析~機械学習までの道のり(どこまでやるの!?)

あくまで、中小企業のデータ分析したい場合について:

  • 機械学習というキーワードが独り歩きしていますが、実際の仕事でデータを整理しないければならない場合、どういった考え方で進めるか・どこまでやるべきかについて考察しました。
  • 結論として、データ分析には、いくつかの段階に渡り、その延長線上に機械学習があります。
  • このように整理しておくことで、利用部門から相談を受けたとき、情シス担当者の頭の中では、どの段階までを想定して対応すれば良いか、という話になります。それを探るために利用部門にインタビューすることで、対応の方向性を判断していくことができます。

進め方

簡易データ集計 ~ KPI設定

  • データを集める、データ構造を整理する(足りない項目を補う、重複データを削除する)
  • Excelでピボットテーブルや基本的な集計を行ってみる。 (python+Pandasで、基礎統計量を取ってもOK。)
  • 業務目的に合致するKPIを検討、実際に計算してみる。 (試行錯誤が必要な場合がある。)
  • 時系列・セグメント分け等のKPI値の変化を評価してみる。(試行錯誤が必要な場合がある。)
  • 評価軸が増えるに従って、生成されるKPIデータ量(パターン)が膨大になる。
  • 膨大なパターンの中から、本当に業務上の意味があるパターンを発見するためには、業務内容や現場の事ををより理解していることが好ましい。

データの可視化と共有

  • 一回限りのニーズなのか、業務サイクルの中で繰り返し発生するニーズなのか。
  • 繰り返し発生する場合、BIツール導入を検討すると良い。

▲ ここまでで目的を達成できるならば、これ以上の機械学習まではいらない。

  • 組織内データの場合、そのデータの属性はある程度は予想できることが多い。KPI設定やBIツールでの可視化まで行えれば目標達成となるケースが多いと思われます。

▼ ここから先に、やっと機械学習が登場

本当に機械学習を用いないといけないような業務課題なのかどうか?

  • 例えば、大量データを処理しないといけない場合、常に特徴が変化していくようなデータ。

  • 機械学習以前に、データ整理がされていないといけないことは同じ。

  • 機械学習とは、データ属性の分類付けや特徴の把握であるので、手作業で行ってきたKPI把握までの手順をpythonで行っていることと似ている。ひとり情シス担当者が頭の中で行っていた分類付けや特徴の把握を、python側にやらせているのと同じ。

PythonでExcel操作する(openpyxl)

Windows環境にインストールされたPythonExcel操作するライブラリ(openpyxl)

GitHub(ericgazoni / openpyxl)

github.com

Anaconda Promptからjupyterthemesをインストールします。

  • 以下のコマンドでインストールします。
[Anaconda Prompt]
(test1) C:\Users\user01>pip install openpyxl

openpyxlの公式使い方サイトはこちら

openpyxl.readthedocs.io

  • 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")

f:id:persimoon:20210101105032j:plain
openpyxlでExcel操作サンプル

JupitorNoteBookの見た目を変える(jupyter-themes)

Windows環境にインストールされたAnnacondaのJupitorNoteBookのテーマを変更するための手順

GitHub(dunovank / jupyter-themes)

github.com

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を入力します。

f:id:persimoon:20201226124407j:plain

  • ログイン成功

f:id:persimoon:20201226124418j:plain