支持向量机(SVM)不平衡样本处理方法
在许多机器学习任务中经常出现样本不均衡问题,即某类样本在总样本占比极低。一般解决样本不平衡问题的方法有以下几种:
(1)改变分类阈值,使分类结果更偏向于样本少的一类
(2)改变样本类别的权重
(3)过采样与欠采样(即对多数样本采用欠采样,或对少数样本采用过采样。)
(4)采用数据合成方法进行过采样(SMOTE合成少数类过采样技术)
本文使用支持向量机算法对不平衡样本的处理进行简单验证。本文主要观察改变样本权重以及使用随机过采样对分类结果的影响来判断该方法对少数样本的重视程度。
引入第三方库
import numpy as np
import matplotlib.pyplot as plt
from sklearn import svm
创建不均衡样本
rng = np.random.RandomState(0)
n_samples_1 = 1000
n_samples_2 = 100
X = np.r_[1.5 * rng.randn(n_samples_1, 2), 0.5 * rng.randn(n_samples_2, 2) + [2, 2]]
y = [0] * (n_samples_1) + [1] * (n_samples_2)
使用支持向量机对未处理样本进行拟合分类
clf = svm.SVC(kernel=‘linear’)
clf.fit(