Skip to content

Instantly share code, notes, and snippets.

View RikiyaOta's full-sized avatar
🏠
Working from home

RikiyaOta RikiyaOta

🏠
Working from home
View GitHub Profile
@RikiyaOta
RikiyaOta / perceptron.py
Last active July 19, 2018 08:24
Rick Tech | パーセプトロン
import numpy as np
class Perceptron:
def __init__(self, eta=0.01, n_iter=50, random_state=1):
"""
eta: 学習率
n_iter: トレーニングデータの学習回数
random_state: 乱数のシード。固定しておく。
"""
self.eta = eta
@RikiyaOta
RikiyaOta / iris-dataset.py
Created July 17, 2018 08:54
Create Iris dataset
#Irisのデータを取得する
import pandas as pd
df = pd.read_csv("/Users/rikiyaota/Documents/self-study/machine-learning/python-machine-learning-book-2nd-edition/code/ch02/iris.data",
header=None)
#データセットに少し手を加える
import matplotlib.pyplot as plt
#データの先頭から100個だけを抜き出し、クラスラベルだけを抽出する
y = df.iloc[0:100, 4].values
@RikiyaOta
RikiyaOta / .py
Created July 17, 2018 09:00
パーセプトロンにIrisデータセットを学習させる
#パーセプトロンのインスタンス生成
ppn = Perceptron(eta=0.1, n_iter=10)
#学習!!
ppn.fit(X, y)
#エポック毎の誤分類の数をプロットしてみます。
plt.plot(range(1, len(ppn.errors_)+1), ppn.errors_, marker="o")
plt.xlabel("Epoch")
plt.ylabel("Number of update")
plt.show()
@RikiyaOta
RikiyaOta / sample-meshgrid.py
Created July 19, 2018 03:47
meshgridの簡単な使い方
import numpy as np
#3x3メッシュを作成
xx, yy = np.meshgrid(np.arange(3), np.arange(3))
print(xx)
#---------------------
#array([[0, 1, 2],
# [0, 1, 2],
# [0, 1, 2]])
@RikiyaOta
RikiyaOta / plot_region_func.py
Created July 19, 2018 03:57
領域を視覚化する関数
from matplotlib.colors import ListedColormap
def plot_decision_regions(X, y, classifier, resolution=0.02):
"""
X: 入力データ X.shape = [n_samples, n_features]
y: 教師ラベル
classifier: 分類を行うモデルのインスタンス
resolution: 領域の解像度
"""
#マーカーとカラーアップの準備
@RikiyaOta
RikiyaOta / sample-ravel.py
Created July 19, 2018 04:06
NumPyのravel
print(xx.ravel())
#----------------------------------------
#array([0, 1, 2, 0, 1, 2, 0, 1, 2])
#----------------------------------------
print(yy.ravel())
#----------------------------------------
#array([0, 0, 0, 1, 1, 1, 2, 2, 2])
#----------------------------------------
@RikiyaOta
RikiyaOta / ravel_T.py
Created July 19, 2018 04:12
ravel()からの転置
print(np.array([xx.ravel(), yy.ravel()]).T)
#---------------------------------------------------
#array([[0, 0],
# [1, 0],
# [2, 0],
# [0, 1],
# [1, 1],
# [2, 1],
# [0, 2],
# [1, 2],
@RikiyaOta
RikiyaOta / result_perceptron.py
Created July 19, 2018 04:19
plot_region の結果(パーセプトロン)
#ppnはパーセプトロンのインスタンス
plot_decision_regions(X, y, classifier=ppn)
#それぞれの軸にラベルをつける
plt.xlabel("sepal length [cm]")
plt.ylabel("petal length [cm]")
#凡例をつける
plt.legend(loc="upper left")
@RikiyaOta
RikiyaOta / asynchronous.js
Last active August 18, 2018 07:54
非同期処理の例
/**
* 1秒待ってから"First"と表示し、その直後に"Second"と表示したいと思っている
* (以下のコードでは逆になってしまいます。うまくない)
*/
setTimeout(()=>{
console.log("First");
}, 1000);
console.log("Second");
@RikiyaOta
RikiyaOta / intro-promise.js
Created August 18, 2018 08:08
Promiseの基本的な使い方
/**
* Promiseの基本的な使い方
*
* new Promise((resolve, reject)=>{
* 何かしら非同期処理
* ・・・・
* ・・・・
*
* if(成功!) resolve(value);
* if(失敗!) reject(error);