支持向量机分类近红外光谱数据Python代码
时间: 2024-10-04 19:00:37 浏览: 39
支持向量机(SVM)是一种常用的机器学习算法,尤其适用于小样本、非线性和高维数据。在Python中,我们可以使用Scikit-Learn库来实现SVM对近红外光谱数据的分类。下面是一个简单的例子:
```python
# 导入所需的库
from sklearn import svm
from sklearn.model_selection import train_test_split
import pandas as pd
# 假设你有一个名为data.csv的数据集,包含特征列(X)和标签列(y)
data = pd.read_csv('data.csv')
# 提取特征和目标变量
X = data.iloc[:, :-1] # 近红外光谱数据通常作为特征
y = data.iloc[:, -1] # 目标变量或类别标签
# 数据预处理,如归一化或标准化
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)
# 创建SVM分类器
svm_classifier = svm.SVC(kernel='linear') # 使用线性核函数,可以根据需要改变kernel参数
# 训练模型
svm_classifier.fit(X_train, y_train)
# 预测
y_pred = svm_classifier.predict(X_test)
# 评估模型性能
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")
阅读全文