# Name:fang xiaoyu
# Time: 2023/3/11 22:30
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import classification_report

# 读取CSV文件
data = pd.read_csv('sufshark_openvpn_tcp+youdao_header.csv')

# 将类别转换为数字标签
# le = preprocessing.LabelEncoder()
# data['label'] = le.fit_transform(data['label'])
data["class1"] = data["class1"].replace({"VPN": 1, "Non-VPN": 0})

# 分离特征和类别
X = data.iloc[:, :-1]
y = data.iloc[:, -1]

# # 分离特征和标签
# X = data.drop('label', axis=1)
# y = data['label']

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

# 创建SVM模型
svm_model = SVC()

# 在训练集上训练模型
svm_model.fit(X_train, y_train)

# 在测试集上评估模型
predictions = svm_model.predict(X_test)
print(classification_report(y_test, predictions))

#      precision    recall  f1-score   support
#
#            0       0.59      0.42      0.49      1720
#            1       0.61      0.76      0.67      2032
#
#     accuracy                           0.60      3752
#    macro avg       0.60      0.59      0.58      3752
# weighted avg       0.60      0.60      0.59      3752