title: What's the difference between using these 2 approaches to light gbm classifier?
body: <p>I want to use some Light gbm functions properly.</p>
  
  <p>This is standard approach, it's no different than any other classifier from sklearn:</p>
  
  <ul>
  <li>define X, y </li>
  <li>train_test_split </li>
  <li>create classifier </li>
  <li>fit on train </li>
  <li>predict on test </li>
  <li><p>compare</p>
  
  <pre><code>X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25)  
  #here maybe DecisionTreeClassifier(), RandomForestClassifier() etc
  model = lgb.LGBMClassifier()
  model.fit(X_train, y_train)
  
  predicted_y = model.predict(X_test)
  
  print(metrics.classification_report())
  </code></pre></li>
  </ul>
  
  <p>but light gbm has its own functions like lgb.Dataset, Booster.</p>
  
  <p>However, in <a href="https://www.kaggle.com/sreeram004/simple-lightgbm-classifier" rel="nofollow noreferrer">this kaggle notebook</a>, it's not calling LightGBMClassifier at all! 
  Why?</p>
  
  <p>what is the standard order to call lgbm functions and train models the 'lgbm' way?</p>
  
  <pre><code>X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25)
  
  #why need this Dataset wrapper around x_train,y_train?
  
  d_train = lgbm.Dataset(X_train, y_train)
  
  
  #where is light gbm classifier()?
  bst = lgbm.train(params, d_train, 50, early_stopping_rounds=100)
  
  preds = bst.predict(y_test)
  </code></pre>
  
  <p>why does it train right away?</p>