| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
3,639 バイト追加 、 2021年8月31日 (火) 12:42
| [[TensorFlow]] | [[Docker]] | [[Ubuntu]] | [[数学]] | [[統計]] | [[ベイズ統計]] | [[データ解析]] | [[R]] | [[Python NumPy]] |
==機械学習==
{{amazon|4295010073}}
*訓練データセットにうまく適合するモデルを選択した後は、いわゆる汎化誤差(学習時に使わなかったデータに対する予測値と正解の差)を評価できる
*性能に納得がいけば、このモデルを使って将来データを予測できる
==分類問題==
*散布図
[[File:perceptron01.png|300px]]
===[https://ja.wikipedia.org/wiki/%E7%B7%9A%E5%BD%A2%E5%88%86%E9%A1%9E%E5%99%A8#:~:text=%E7%B7%9A%E5%BD%A2%E5%88%86%E9%A1%9E%E5%99%A8%EF%BC%88%E8%8B%B1%3A%20Linear,%E3%81%93%E3%81%A8%E3%82%92%E7%9B%AE%E7%9A%84%E3%81%A8%E3%81%99%E3%82%8B%E3%80%82 線形分類器]===
----
*特徴の線形結合の値に基づいて分類を行う確率的分類器である。機械学習において、分類は項目群を特徴値に基づいてグループに分類することを目的とする
*パーセプトロンアルゴリズムは、完全な線形分類が不可能なデータセットでは決して収束しないため、一般に実務データ解析で推奨されない
 
===[https://ja.wikipedia.org/wiki/%E3%83%91%E3%83%BC%E3%82%BB%E3%83%97%E3%83%88%E3%83%AD%E3%83%B3 パーセプトロン]===
----
パーセプトロンモデルは、脳内の1つのニューロンの働き、発火するかしないか、を模倣
# 重みを0または値の小さな乱数で初期化
# 訓練データごとに次の手順を実行
## 出力値を計算
## 重みを更新
[[File:perceptron02.png|300px]] [[File:perceptron03.png|300px]]
===ADALINE===
----
*パーセプトロンアルゴリズムの改良と見なすことができる。違いは重みの更新方法にある。
*パーセプトロンのような単位ステップ関数ではなく、線形活性化関数に基づいて重みを更新する
[[File:adaline02.png|300px]] [[File:adaline01.png|300px]]
 
===ロジスティック回帰(logistic regression)===
----
*線形分類問題と二値分類問題に対する単純ながら強力なアルゴリズムの一つ
*名前とは裏腹に怪奇ではなく分類のためのモデル
*非常に実装しやすく、線形分離可能なクラスでは非常に性能が良い
*産業界において最も広く使われている分類アルゴリズムの1つ
====オッズ比====
*確率<math>p</math>の場合、事象の起こりやすさをオッズ比(odds ratio)として、<math>\tfrac{p}{(1-p)}</math>と書くことができる
*<math>p</math>は、正事象(positive event 予測したい事象)を表す
*オッズの対数を取ったものを、[https://mathwords.net/logitkansu ロジット(logit)関数]という。
<math>
logit(p) = log\frac{p}{(1 - p)}
</math>
*ロジット関数の逆関数は、ロジスティックシグモイド(logistic sigmoid)関数とも呼ばれる。
<math>
\phi(z) = \frac{1}{(1 + e^{-z})}
</math>
 
==scikit-learn==
===インストール===
----
<pre>
$ pip install scikit-learn
</pre>
*Irisデータセットは、scikit-learnに組み込まれている
<pre>
>>> from sklearn import datasets
>>> import numpy as np
>>> iris = datasets.load_iris()
>>> X = iris.data[:, [2,3]]
>>> y = iris.target
>>> print('Class labels:', np.unique(y))
Class labels: [0 1 2]
</pre>
==・・・・・・・・・・・・・・・・・==
==[[TensorFlow]]==
*[[TensorFlow]]
 
 
 
==Irisデータセット==
<pre>
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
 
url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'
df = pd.read_csv(url, header=None, encoding='utf-8')
result = df.tail()
print(result)
 
y = df.iloc[0:100, 4].values
y = np.where(y == 'Iris-secosa', -1, 1)
X = df.iloc[0:100, [0, 2]].values
plt.scatter(X[:50,0], X[:50,1], color='red', marker='o', label='setosa')
plt.scatter(X[50:100,0], X[50:100, 1], color='blue', marker='x', label='versicolor')
plt.xlabel('sepal length[cm]')
plt.ylabel('petal length[cm]')
plt.legend(loc='upper left')
plt.savefig('03.sample.png') # 画像を保存
plt.show()
</pre>
[[File:iris_df01.png|500px]]

案内メニュー