text: #!/usr/bin/env python
  
  # ホールドアウト法 学習用と検証用データを分ける
  # 参考
  
  import pathlib
  
  import matplotlib.pyplot as plt
  import pandas as pd
  from sklearn.ensemble import RandomForestClassifier
  from sklearn.model_selection import train_test_split
  
  
  def main():
      dir = str(pathlib.Path(__file__).parent.absolute())
      titanic = pd.read_csv(dir + r'\titanic.csv', sep=',')
      print("ファイル読み込み\n", titanic)
  
      X = titanic.drop(columns=["Survived"], axis=1)
      print("説明変数", X)
      y = titanic["Survived"]
      print("目的変数", y)
  
      # random_state 値を固定するか否か
      # train_size 割合
      X_train, X_test, y_train, y_test = train_test_split(X,
                                                          y,
                                                          random_state=0,
                                                          train_size=0.8)
  
      print("元データ", titanic.shape)
      print("教師データX", X_train.shape)
      print("テストデータX", X_test.shape)
      print("教師データy", y_train.shape)
      print("テストデータy", y_test.shape)
  
      # model適宜
      # random_state 値を固定するか否か
      # n_estimators ランダムフォレストで用いる木の数
      model = RandomForestClassifier(n_estimators=100, random_state=0)
      model.fit(X_train, y_train)
      predict = model.predict(X)
  
      print("モデル精度(教師データ)", model.score(X_train, y_train))
  
      print("モデル精度(テストデータ)", model.score(X_test, y_test))
  
  
  if __name__ == "__main__":
      main()
  