回帰と分類の違いは目的変数にあります。回帰の目的変数は連続値で、分類の目的変数は離散値です。
連続値とは身長や体重などの切れ目のない数値で、離散値とは「陽性と陰性」などのカテゴリです。例えばサイコロは「1、2、3、4、5、6」という数値ですが、数値の間に切れ目があるため離散値です。
サポートベクタマシンと決定木は分類だけでなく回帰でも利用できます。
scikit-learnで利用するアルゴリズムは以下となります。
◾️ サポートベクタマシン
回帰・・・SVR(RegressorのR)
分類・・・SVC(ClassifierのC)
◾️ 決定木
回帰・・・DesicionTreeRegressor
分類・・・DesicionTreeClassifier
回帰がRegressorで、分類がClassifierです。
これらは説明変数(特徴量)の違いで使い分けるのではなく、目的変数の違い(数値かカテゴリ)で使い分けます。
train_test_split関数はデータを訓練用とテスト用に分割する関数で、教師あり学習でも教師なし学習でも利用します。
例えば、説明変数のデータが格納された変数を「X」、目的変数のデータが格納された変数を「y」とします。
教師あり学習は説明変数と目的変数の両方を利用するため、Xとyを引数にして訓練用(train)とテスト用(test)に分割します。
X_train, X_test, y_train, y_test = train_test_split(X, y)
教師なし学習は説明変数しか利用しないため、Xだけを引数にして訓練用(train)とテスト用(test)に分割します。
X_train, X_test = train_test_split(X)