機械学習開発者のための Python 短期集中コース
機械学習に Python エコシステムの使用を開始するには、Python 開発者である必要はありません。
1 つ以上のプログラミング言語でプログラミングする方法をすでに知っている開発者は、Python などの新しい言語をすぐに習得できます。すでに知っている内容を新しい言語に移すには、その言語のいくつかの特性を知るだけで済みます。
この投稿では、Python の短期集中コースと機械学習に必要なコア ライブラリを取得します。つまり、NumPy、MatPlotLib、Pandas です。
これは、機械学習用の Python コード例を読んで理解し、独自のスクリプトの開発を開始するのに十分な情報です。すでに Python について少し知っている場合は、この投稿がわかりやすい思い出となるでしょう。
私の新しい本『Machine Learning Mastery With Python』 でプロジェクトを始めましょう。これにはステップバイステップのチュートリアルとPython ソース コード ファイルが含まれています。すべての例。
始めましょう。
- 2017 年 3 月更新: Python 2 および Python 3 で動作するようにすべての print ステートメントを更新しました。
Python クラッシュ コース
Python を使い始めるときは、Python コードを読んで理解できるように、言語構文に関する重要な詳細をいくつか知っておく必要があります。これには以下が含まれます。
- 割り当て
- フロー制御
- データ構造
- 機能
これらの各トピックを、入力して実行できる小さなスタンドアロンの例で順番に説明します。
Python では空白は意味があることに注意してください。
割り当て
プログラマーにとって、割り当てと型は驚くべきことではありません。
文字列
# Strings
data = 'hello world'
print(data[0])
print(len(data))
print(data)
サンプルを実行すると、次のように出力されます。
h
11
hello world
数字
# Numbers
value = 123.1
print(value)
value = 10
print(value)
サンプルを実行すると、次のように出力されます。
123.1
10
ブール値
# Boolean
a = True
b = False
print(a, b)
サンプルを実行すると、次のように出力されます。
(True, False)
複数の割り当て
# Multiple Assignment
a, b, c = 1, 2, 3
print(a, b, c)
サンプルを実行すると、次のように出力されます。
(1, 2, 3)
値がありません
# No value
a = None
print(a)
サンプルを実行すると、次のように出力されます。
None
フロー制御
フロー制御には、If-Then-Else 条件、For-ループ、および While ループという 3 つの主なタイプを学習する必要があります。
If-Then-Else 条件の例
value = 99
if value >= 99:
print('That is fast')
elif value > 200:
print('That is too fast')
else:
print('That that is safe')
この例を実行すると、次のように出力されます。
That is fast
Forループの例
# For-Loop
for i in range(10):
print(i)
この例を実行すると、次のように出力されます。
0
1
2
3
4
5
6
7
8
9
While ループの例
# While-Loop
i = 0
while i < 10:
print(i)
i += 1
この例を実行すると、次のように出力されます。
0
1
2
3
4
5
6
7
8
9
データ構造
Python には 3 つのデータ構造があり、最もよく使用され、便利です。それらはタプル、リスト、辞書です。
タプルの例
タプルは読み取り専用の項目のコレクションです。
a = (1, 2, 3)
print(a)
サンプルを実行すると、次のように出力されます。
(1, 2, 3)
リストの例
リストは角括弧表記を使用し、配列表記を使用してインデックスを付けることができます。
mylist = [1, 2, 3]
print("Zeroth Value: %d" % mylist[0])
mylist.append(4)
print("List Length: %d" % len(mylist))
for value in mylist:
print(value)
サンプルを実行すると、次のように出力されます。
Zeroth Value: 1
List Length: 4
1
2
3
4
辞書の例
辞書は、地図のように名前を値にマッピングしたものです。中括弧表記の使用に注意してください。
mydict = {'a': 1, 'b': 2, 'c': 3}
print("A value: %d" % mydict['a'])
mydict['a'] = 11
print("A value: %d" % mydict['a'])
print("Keys: %s" % mydict.keys())
print("Values: %s" % mydict.values())
for key in mydict.keys():
print(mydict[key])
サンプルを実行すると、次のように出力されます。
A value: 1
A value: 11
Keys: ['a', 'c', 'b']
Values: [11, 3, 2]
11
3
2
機能
Python の最大の落とし穴は空白です。インデントされたコードの後に空の改行があることを確認してください。
以下の例では、2 つの値の合計を計算する新しい関数を定義し、2 つの引数を指定してその関数を呼び出します。
# Sum function
def mysum(x, y):
return x + y
# Test sum function
print(mysum(1, 3))
サンプルを実行すると、次のように出力されます。
4
NumPy クラッシュ コース
NumPy は、SciPy の基礎となるデータ構造と操作を提供します。これらは、効率的に定義および操作できる配列 (ndarray) です。
配列の作成
# define an array
import numpy
mylist = [1, 2, 3]
myarray = numpy.array(mylist)
print(myarray)
print(myarray.shape)
サンプルを実行すると、次のように出力されます。
[1 2 3]
(3,)
データへのアクセス
配列表記と範囲を使用すると、NumPy 配列内のデータに効率的にアクセスできます。
# access values
import numpy
mylist = [[1, 2, 3], [3, 4, 5]]
myarray = numpy.array(mylist)
print(myarray)
print(myarray.shape)
print("First row: %s" % myarray[0])
print("Last row: %s" % myarray[-1])
print("Specific row and col: %s" % myarray[0, 2])
print("Whole col: %s" % myarray[:, 2])
サンプルを実行すると、次のように出力されます。
[[1 2 3]
[3 4 5]]
(2, 3)
First row: [1 2 3]
Last row: [3 4 5]
Specific row and col: 3
Whole col: [3 5]
算術
NumPy 配列は算術演算で直接使用できます。
# arithmetic
import numpy
myarray1 = numpy.array([2, 2, 2])
myarray2 = numpy.array([3, 3, 3])
print("Addition: %s" % (myarray1 + myarray2))
print("Multiplication: %s" % (myarray1 * myarray2))
サンプルを実行すると、次のように出力されます。
Addition: [5 5 5]
Multiplication: [6 6 6]
NumPy 配列には他にもたくさんの機能がありますが、これらの例では、大量の数値データを処理するときに得られる効率性を理解できます。
Matplotlib クラッシュ コース
Matplotlib は、プロットやチャートの作成に使用できます。
ライブラリは通常次のように使用されます。
- いくつかのデータを使用してプロット関数を呼び出します (plot() など)。
- 多くの関数を呼び出して、プロットのプロパティ (ラベルや色など) を設定します。
- プロットを表示します (例: show())。
折れ線グラフ
以下の例では、1 次元データから単純な折れ線プロットを作成します。
# basic line plot
import matplotlib.pyplot as plt
import numpy
myarray = numpy.array([1, 2, 3])
plt.plot(myarray)
plt.xlabel('some x axis')
plt.ylabel('some y axis')
plt.show()
例を実行すると次が生成されます。
散布図
以下は、2 次元データから散布図を作成する簡単な例です。
# basic scatter plot
import matplotlib.pyplot as plt
import numpy
x = numpy.array([1, 2, 3])
y = numpy.array([2, 4, 6])
plt.scatter(x,y)
plt.xlabel('some x axis')
plt.ylabel('some y axis')
plt.show()
例を実行すると次が生成されます。
プロットを構成するためにプロットに設定できるプロット タイプやプロパティはさらに多くあります。
パンダクラッシュコース
Pandas は、データを迅速に操作および分析するためのデータ構造と機能を提供します。機械学習用の Pandas を理解する鍵は、Series と DataFrame のデータ構造を理解することです。
シリーズ
シリーズは、行と列にラベルを付けることができる 1 次元配列です。
# series
import numpy
import pandas
myarray = numpy.array([1, 2, 3])
rownames = ['a', 'b', 'c']
myseries = pandas.Series(myarray, index=rownames)
print(myseries)
サンプルを実行すると、次のように出力されます。
a 1
b 2
c 3
NumPy 配列や辞書などの一連のデータにアクセスできます。次に例を示します。
print(myseries[0])
print(myseries['a'])
サンプルを実行すると、次のように出力されます。
1
1
DataFrame
データ フレームは、行と列にラベルを付けることができる多次元配列です。
# dataframe
import numpy
import pandas
myarray = numpy.array([[1, 2, 3], [4, 5, 6]])
rownames = ['a', 'b']
colnames = ['one', 'two', 'three']
mydataframe = pandas.DataFrame(myarray, index=rownames, columns=colnames)
print(mydataframe)
サンプルを実行すると、次のように出力されます。
one two three
a 1 2 3
b 4 5 6
列名を使用してデータにインデックスを付けることができます。
print("one column: %s" % mydataframe['one'])
print("one column: %s" % mydataframe.one)
サンプルを実行すると、次のように出力されます。
one column: a 1
b 4
one column: a 1
b 4
まとめ
この投稿では多くの内容を取り上げてきました。 Python の基本的な構文と使用法、および機械学習に使用される 4 つの主要な Python ライブラリを学習しました。
- NumPy
- マットプロットリブ
- パンダ
これで、機械学習用の Python コードを読んで理解し、独自のスクリプトの作成を開始するのに十分な構文と使用法に関する情報が得られました。
この投稿の例について何か質問はありますか?コメントで質問してください。できる限りお答えします。