<jupyter_start><jupyter_text>2021.1


免責事項：本教材（解説，およびプログラム）は教育目的に提供されるものです．本教材を利用したことによる直接あるいは間接的な損害に関して，著作者および著作者の所属組織等，如何なる個人・組織も一切の責任を負いません．本教材の利用は利用者個人の責任のもと行ってください．<jupyter_code>import numpy as np
import pandas as pd
from sklearn.neural_network import MLPClassifier
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import GridSearchCV
import matplotlib.pyplot as plt
df = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data', header=None) # web上のデータを読み込む
df.columns = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'species'] # 列名を付ける
display(df)
features = df.loc[:, 'sepal_length':'petal_width'] # 特徴量だけを取り出す
display(features)
targets = df.loc[:, ['species']] # 正解カテゴリーを取り出す
display(targets)
# dataframeをndarrayに変換
#X = features.values
#y = targets.values
X = np.array(features)
y = np.array(targets)
y = y.ravel() # 配列の次元を落とす
scaler = StandardScaler() # scalerインスタンスの生成
X = scaler.fit_transform(X) # 特徴量データの標準化
X_train, X_test, y_train, y_test = train_test_split(X, y) # 訓練データと検証データへの分割
clf = MLPClassifier(max_iter=10000) # 多層ニューラルネットワークの生成
clf.fit(X_train, y_train)
plt.plot(clf.loss_curve_)
plt.title("Loss curve") # グラフのタイトル
plt.xlabel("Iteration") # x軸は繰り返し数（エポック数）
plt.ylabel("Loss") # y軸は損失値
plt.grid() # グリッド線を描く
clf.predict(X_test) # 検証データに対する予測結果表示
c = clf.score(X_test, y_test)
print("正解率は{}%です．".format(c * 100)) # 検証データでの成績表示<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1256544502617801, 'fraction_numerical': 0.008507853403141362, 'mean_word_length': 7.0473684210526315, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '499127', 'license': 'MIT', 'n_tokens_mistral': 839, 'n_tokens_neox': 842, 'n_words': 99, 'path': 'scikit_learnでニューラルネットワーク実習.ipynb', 'repo_name': 'lec-ds/practice_MLP', 'size': '1528'}