csvファイルから特徴量データを読み込んで、SVM等で分類をしたいと考えています
しかし、
SVM(X_train_std, X_test_std, Y_train, Y_test) ^ IndentationError: unindent does not match any outer indentation level
上記に示すエラーが発生し、調べてみると、行のスペースのに問題がある可能性があるとのことでしたが、
治したつもりですが、同じエラーが発生してしまいます。
原因が分かる方がいましたら教えてください。
以下にコードを示します。
import scipy as sp import pandas as pd from pandas import Series, DataFrame import matplotlib.pyplot as plt from sklearn.preprocessing import StandardScaler from sklearn.ensemble import RandomForestClassifier #RandomForest from sklearn.svm import SVC # SVM用 import lightgbm as lgb def SVM(X_train_std, X_test_std, Y_train, Y_test): model_SVM = SVC(random_state=0, kernel = "rbf", C = 1000 , gamma = 0.01 ) #学習モデル構築。引数に訓練データの特徴量と、それに対応したラベル model_SVM.fit(X_train_std,Y_train) #予測したクラスラベル Y_pred = model_SVM.predict(X_test_std) # .scoreで正解率を算出。 print("\nSVM") print("train score:",model_SVM.score(X_train_std,Y_train)) print("test score:",model_SVM.score(X_test_std,Y_test)) def GBM(X_train, X_test, Y_train, Y_test): model_GBM = lgb.LGBMClassifier(boosting_type='gbdt', num_leaves=58, max_depth=14, learning_rate=0.1, n_estimators=940, min_child_samples=40, importance_type="split", random_state=0) #学習モデル構築。引数に訓練データの特徴量と、それに対応したラベル model_GBM.fit(X_train, Y_train) #予測したクラスラベル Y_pred = model_GBM.predict(X_test) # .scoreで正解率を算出。 print("\nGBM") print("train score:",model_GBM.score(X_train,Y_train)) print("test score:",model_GBM.score(X_test,Y_test)) def main(): case_name = "case3" case_dir = "./casestudy/{}/".format(case_name) input_csv_name = "2_extracted_features_original.csv" input_csv_path = case_dir + input_csv_name input_df = pd.read_csv(input_csv_path, encoding="utf-8-sig") task = "all" train_df = input_df[input_df["train_test_flag"] == 0] test_df = input_df[input_df["train_test_flag"] == 1] X_train = train_df.loc[:, "contrast":"inverse_difference_m_norm"] X_test = test_df.loc[:, "contrast":"inverse_difference_m_norm"] # print(X_train) # print(X_test) Y_train = train_df["category"] Y_test = test_df["category"] sc = StandardScaler() sc.fit(X_train) X_train_std = sc.transform(X_train) X_test_std = sc.transform(X_test) SVM(X_train_std, X_test_std, Y_train, Y_test) GBM(X_train, X_test, Y_train, Y_test) if __name__ == "__main__": main()
回答2件
あなたの回答
tips
プレビュー