分类问题是最基础的一个问题,例如水体和非水体的识别,下面分享一个利用python实现SVM的代码案例,其中数据读取是基础,好多例子都用的是系统自带数据集导入,在此写一个利用本地CSV数据建模的例子,希望对你有所帮助,代码如下:
#pip install numpy scikit-learn
from sklearn import svm
from sklearn.model_selection import train_test_split
from sklearn import datasets
from sklearn.svm import SVC
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import classification_report
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 加载数据
#iris = datasets.load_iris()
#print iris.target_names
# 读取数据
# 假设你已经有了水体和非水体的特征数据
# X是特征数据,y是对应的类标签(0表示非水体,1表示水体)
#X = np.array([...])
#y = np.array([...])
file_path=r"D:\test\data_test .csv"
df = pd.read_csv(file_path, encoding='utf-8') # 这里我的字段名是汉字,所以用了encoding='gb2312'
X = df[['feature_1','feature_2','feature_3','feature_4']]
y = df[['classcode']]
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=50)
# 数据标准化
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
# 创建SVM分类器
svm = SVC(kernel='sigmoid', C=20, gamma=0.1, probability=True) # 参数可以自己调整
svm.fit(X_train, y_train)
# 预测和评估
predictions = svm.predict(X_test)
print(classification_report(y_test, predictions))
#请注意,上述代码是一个简化示例,实际应用中你需要根据你的数据集调整参数,并且可能需要对数据进行预处理,包括特征缩放、噪声移除等。
669

被折叠的 条评论
为什么被折叠?



