このチャプターの目次
得られた構造情報や化学記述子の情報をもとに欲しい物性情報を予測する手法を学んでいきます。
ここでは、rdkitの復習とscikit-learn(サイキット・ラーン、旧称: scikits.learn)を用いて行っていきます。scikit-learn(サイキット・ラーン、旧称: scikits.learn)は、Pythonのオープンソース機械学習ライブラリ、Pythonのオープンソース機械学習ライブラリです。
scikit-learnについて
今回使用するコード
講義動画
今回のアウトライン
0. データの準備
化合物の溶解度のデータを使用する。
!wget 'http://modem.ucsd.edu/adme/data/databases/logS/data_set.dat'
読み込んだデータをpandasのデータフレームに入れる。
df = pd.read_csv('data_set.dat', sep='\t', header=None, names = ["smiles", "CAS", "logS"])
1. トレーニングデータとテストデータの分割: train_test_split
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.1, random_state = 10)
X_train = X_train.sort_index()
X_train
2. 学習: model.fit()
from sklearn.ensemble import RandomForestRegressor
model = RandomForestRegressor(max_depth = 100, n_estimators = 500, n_jobs = -1, random_state = 100)
model.fit(X_train, y_train)
3. 重要度解析 model.feature_importances_
fi_rf = model.feature_importances_
features_rf = pd.DataFrame({'feature': list(X_train.columns),
'feature_importance': fi_rf[:]}).sort_values('feature_importance', ascending = False)
features_rf = features_rf[features_rf['feature_importance'] != 0]
plt.scatter(features_rf.iloc[:10, :].feature, features_rf.iloc[:10, :].feature_importance);
features_rf