在Pandas中使用SMOTE方法生成合成樣本需要先將數據轉換為特征矩陣和目標向量的形式,然后使用imbalanced-learn庫中的SMOTE類來生成合成樣本。下面是一個示例代碼:
import pandas as pd
from imblearn.over_sampling import SMOTE
# 讀取數據
data = pd.read_csv('data.csv')
# 將特征和目標分開
X = data.drop('target', axis=1)
y = data['target']
# 使用SMOTE生成合成樣本
smote = SMOTE(random_state=42)
X_resampled, y_resampled = smote.fit_resample(X, y)
# 將合成樣本轉換為DataFrame
resampled_data = pd.concat([pd.DataFrame(X_resampled), pd.DataFrame(y_resampled, columns=['target'])], axis=1)
# 打印生成的合成樣本
print(resampled_data)
在上面的示例中,首先讀取數據,然后將數據分為特征矩陣X和目標向量y。接著使用SMOTE類生成合成樣本,最后將合成樣本轉換為DataFrame并打印出來。