複数の機械学習モデルの分類問題への適用と分類結果の可視化【Pythonプログラミング】
湯どうふ(化学の勉強) 湯どうふ(化学の勉強)
3K subscribers
476 views
7

 Published On Jul 6, 2020

湯どうふと申します。
本チャンネルでは、化学に関する動画を配信しています。

音声:湯どうふ

キーワード:
機械学習、Python、プログラミング、可視化、分類問題、決定境界、ランダムフォレスト、ロジスティック回帰、決定木、k近傍法、サポートベクターマシン

【コード例】
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
from sklearn.datasets import load_wine
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.neighbors import KNeighborsClassifier
from sklearn.svm import SVC
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier

def extract_data():
wine = load_wine()
x_data = wine.data
y_data = wine.target
x_data = x_data[:, [0,6]]

sc = StandardScaler()
sc.fit(x_data)
x_data = sc.transform(x_data)

ax = plt.subplot()
ax.scatter(x_data[:,0], x_data[:,1], c=y_data, cmap="brg")
plt.savefig("region00_extract.png")
return x_data, y_data

def predict(x, y, resolution=0.01):
lr = LogisticRegression(C=10)
knn = KNeighborsClassifier(n_neighbors=5)
svm = SVC(probability=True)
dc = DecisionTreeClassifier(criterion='entropy', max_depth=3)
rf = RandomForestClassifier(criterion='entropy', n_estimators=10)

models = [lr, knn, svm, dc, rf]
cm = ListedColormap(["b", "g", "r"])
x1_min, x1_max = x[:, 0].min()-1, x[:, 0].max()+1
x2_min, x2_max = x[:, 1].min()-1, x[:, 1].max()+1
XX, YY = np.meshgrid(np.arange(x1_min, x1_max, resolution),
np.arange(x2_min, x2_max, resolution))

fig, axes = plt.subplots(nrows=2, ncols=3, figsize=(12, 9))
for ax, clf in zip(axes.ravel(), models):
ax.set_xlim(XX.min(), XX.max())
ax.set_ylim(YY.min(), YY.max())
ax.scatter(x[:,0], x[:,1], c=y, cmap=cm)

clf.fit(x, y)
Z = clf.predict_proba(np.stack([XX.ravel(), YY.ravel()], axis=1))
ZZ = np.flip(Z.reshape(XX.shape + (3, )), axis=(0,2))
ax.imshow(ZZ, alpha=0.2,
aspect="auto", extent=(XX.min(), XX.max(), YY.min(), YY.max()))
ax.set_title(clf.__class__.__name__)
plt.tight_layout()
plt.savefig("region00_predict.png")

if _name_ == "__main__":
x_data, y_data = extract_data()
predict(x_data, y_data)


【過去の動画】
最適化アルゴリズムのテストに使えるベンチマーク関数の紹介とPythonによるコード例
   • 最適化アルゴリズムのテストに使えるベンチマーク関数の紹介とPythonによ...  

Pythonで相関関係をヒートマップとして可視化しランダムフォレスト法による重要度と比較:Bostonデータセットへ適用
   • Pythonで相関関係をヒートマップとして可視化しランダムフォレスト法によ...  

Pythonによる行列の特異値分解と低ランク近似を行う手順:画像ファイルへの適用
   • Pythonによる行列の特異値分解と低ランク近似を行う手順:画像ファイルへの適用  

pythonによる階層的クラスタリングとデンドログラム(樹形図)の作成: ward法をirisデータセットへ適用
   • pythonによる階層的クラスタリングとデンドログラム(樹形図)の作成: ...  

PythonプログラムによるExcelファイルの入出力
   • PythonプログラムによるExcelファイルの入出力【プログラミング】  

pythonによるウェブスクレイピング:Google Scholarから論文検索の結果を取得して表にする
   • pythonによるウェブスクレイピング:Google Scholarから論...  

Cythonプログラムの動かし方と速度: pythonの高速化に向けて
   • Cythonプログラムの動かし方と速度: pythonの高速化に向けて【プ...  

pythonプログラムでyoutube-dlを使ってyoutube動画をダウンロードする方法
   • pythonプログラムでyoutube-dlを使ってyoutube動画をダ...  

pythonで画像中の文字認識をする方法(tesseract-OCR、pyocr)
   • pythonで画像中の文字認識をする方法(tesseract-OCR、py...  

Pythonプログラムによるプロットアニメーション
   • Pythonプログラムによるプロットアニメーション【プログラミング】  

Pythonプログラムによるwordファイルの入出力とGoogle翻訳自動化作業
   • Pythonプログラムによるwordファイルの入出力とGoogle翻訳自動...  

Pythonプログラムで3次元グラフを作成し保存する手順
   • Pythonプログラムで3次元グラフを作成し保存する手順【プログラミング初歩】  

show more

Share/Embed