読者です 読者をやめる 読者になる 読者になる

akimachoのはてなブログ

ICTとデザインのためのブログ

機械学習のためのPython開発環境構築メモ

はじめに

機械学習の勉強のために、Python開発環境を構築しました。この記事はそのメモです。

使っているOSは、OSX 10.11.1です。

f:id:akimacho:20151120223753j:plain

pyenv

pyenvPythonのバージョン管理ツールです。

homebrewでインストールします。

$ brew install pyenv

パスを通すために、.bashrc.zshrcに記述します。

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

使い方

$ pyenv install -l ← インストール可能なPython一覧を表示する
$ pyenv install 3.4.3 ← Pythonのインストール
$ pyenv uninstall 3.4.3 ← Pythonのアンインストール
$ pyenv version ← 現在使用中のPythonを表示する
$ pyenv versions ← 利用可能なPython一覧を表示する
$ pyenv rehash ← pyenv shimsを作り直す(インストール後に使います)
$ pyenv local 3.4.3 ← ローカルのPythonを指定する
$ pyenv global 3.4.3 ← グローバルのPythonを指定する

参考 : pyenvを使ってMacにPythonの環境を構築する

pip

pipは、パッケージ管理ツールです。デフォルトで入っています。

使い方

$ pip install numpy ← numpyをインストールする
$ pip uninstall numpy ← numpyをアンインストールする
$ pip list ← インストール済みのパッケージを出力する
$ pip search numpy ← パッケージを検索する

機械学習に必要なパッケージをインストールします。

$ pip install numpy scipy matplotlib scikit-learn pandas

以下のように表示されるので、pip install --upgrade pipを実行します。

You are using pip version 6.0.8, however version 7.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

私の環境ではmatplitlibが動かなかったので、以下記事を参考に設定したところ動きました。

Python3サンプルコード

ちょこっと書いてみました。

### 基本型 ###
# 文字列
string_val = "Hello"
# 整数
int_val = 123
# 浮動小数点
float_val = 3.14
# リスト(list)
list_val = ['hoge', 'foo', 'var']
# タプル(tuple)
tuple_val = (1, 'a')
# 集合(set)
set_val = {'ken', 'taro', 'john', 'hanako'}
# 辞書(dictionary)
dic_val = {'apple': 100, 'banana': 150, 'grape': 180}
### 制御構造 ###
for i in range(100):
    if i == 0:
        print(i)
    elif i % 3 == 0 and i % 5 == 0:
        print("FizzBuzz")
    elif i % 3 == 0:
        print("Fizz")
    elif i % 5 == 0:
        print("Buzz")
    else:
        print(i)
### 関数 ###
def add_one(num=0):
    return num + 1
print(add_one(1))
print(add_one())
### クラス ###
class Person:
    '''人間を表すクラス'''
    # コンストラクタ
    def __init__(self,name,sex,age):
        self.name = name
        self.sex = sex
        self.age = age
    # メソッド
    def display(self):
        print("名前:%s, 性別:%s, 年齢:%d" % (self.name, self.sex, self.age))
taro = Person('taro', 'man', 18)
taro.display()

おわりに

次は、numpyscipyなどの使い方を見ていきたいと思います。

Python機械学習の本をたくさん買ったのでいろいろアウトプットしていくつもりです。

データサイエンティスト養成読本 機械学習入門編 (Software Design plus)

データサイエンティスト養成読本 機械学習入門編 (Software Design plus)

ITエンジニアのための機械学習理論入門

ITエンジニアのための機械学習理論入門

パーフェクトPython (PERFECT SERIES 5)

パーフェクトPython (PERFECT SERIES 5)

Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理

Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理