データの分割
Contents
データの分割¶
学習を始める前にデータを学習・テスト用に分割します。
学習時にはリークを避けるためにテスト用のファイルは一切ふれないようにすることが大切です。
データのロード
import pandas as pd
data = pd.read_csv("input/pn.csv")
学習・テストセットに分割¶
train_test_split を使います。
from sklearn.model_selection import train_test_split
train, test = train_test_split(data, test_size=0.2, random_state=0)
def check_label_distribution(splits, labels):
res = []
for s in splits:
percs = [
(s.query('label == @label').size * 100 / s.size).round(2)
for label in labels
]
res.append(percs)
return res
check_label_distribution([train, test], ["positive", "neutral", "negative"])
[[61.32, 24.02, 14.66], [61.39, 23.58, 15.03]]
ラベルの分布を保つにはstratify
引数にラベルを使います。
train, test = train_test_split(data, test_size=0.2, stratify=data["label"], random_state=0)
check_label_distribution([train, test], ["positive", "neutral", "negative"])
[[61.35, 23.93, 14.72], [61.3, 23.94, 14.76]]