支持向量机(SVM)是一种常用的机器学习算法,用于分类和回归分析。下面是一个简单的C#示例代码,演示如何使用支持向量机算法进行二分类问题。
首先,你需要安装一个支持向量机的库,比如SVM.NET。你可以通过NuGet包管理器来安装它。
csharp
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SVMNet; // 引入SVM库class Program
{
static void Main(string[] args)
{
// 创建训练数据集
double[][] X = new double[][] {
new double[] { 1, 2 },
new double[] { 2, 3 },
new double[] { 3, 4 },
new double[] { 4, 5 },
new double[] { 5, 6 }
};
int[] Y = new int[] { 1, 1, -1, -1, -1 }; // 标签为1和-1的样本
// 创建SVM分类器
SvmModel model = Svm.SvmTrain(X, Y, new SvmParameter(KernelType.Linear, Cp: 1, Nu: 0.5));
// 使用模型进行预测
double[][] testData = new double[][] { new double[] { 2.5, 3 }, new double[] { 3.5, 4 } };
int[] predictions = Svm.SvmPredict(testData, model);
foreach (int prediction in predictions)
{
Console.WriteLine($"Prediction: {prediction}");
}
}
}
在这个示例中,我们首先创建了一个训练数据集X和对应的标签Y。然后,我们使用Svm.SvmTrain方法训练了一个线性核函数的支持向量机模型。接下来,我们使用Svm.SvmPredict方法对测试数据进行预测,并输出预测结果。
请注意,这只是一个简单的示例,实际应用中你可能需要处理更复杂的数据集和参数调整。另外,SVM.NET库还提供了其他功能和选项,你可以根据需要进行探索和使用。