『』支持向量机(SVM)说明及示例( 二 )
# Visualising the Training set results from matplotlib.colors import ListedColormap X_set, y_set = X_train, y_train X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() - 1, stop = X_set[:, 0].max() + 1, step = 0.01), np.arange(start = X_set[:, 1].min() - 1, stop = X_set[:, 1].max() + 1, step = 0.01)) plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(), X2.ravel()]).T).reshape(X1.shape), alpha = 0.75, cmap = ListedColormap(('red', 'green'))) plt.xlim(X1.min(), X1.max()) plt.ylim(X2.min(), X2.max()) for i, j in enumerate(np.unique(y_set)): plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1], c = ListedColormap(('red', 'green'))(i), label = j) plt.title('Classifier (Training set)') plt.xlabel('Age') plt.ylabel('Estimated Salary') plt.legend() plt.show()结果
我们将使用线性和非线性的核来可视化svc对象的测试集
本文插图
线性核
本文插图
非线性核
算法实现(回归)
与上面的SVR模型相类似 。
import numpy as np import pandas as pd import matplotlib.pyplot as plt # import and split the data and classes dataset = pd.read_csv(''Position_Salaries.csv'') X = dataset.iloc[:, 1:-1].values Y = dataset.iloc[:, 2].values # features scaling from sklearn.preprocessing import StandardScaler sc_X = StandardScaler() sc_Y = StandardScaler() X = sc_X.fit_transform(X) Y = sc_Y.fit_transform(np.reshape(Y, (10,1))) # Fitting Regression modelto the dataset from sklearn.svm import SVR regressor = SVR() # add this parametre kernel='rbf' regressor.fit(X,Y) # predicts a new result with polyn reg y_pred = sc_Y.inverse_transform(regressor.predict(sc_X.transform(np.array([[8.5]])))) # Visualisation the regression result plt.scatter(x=X, y=Y,color='red') plt.plot(X, regressor.predict(X), color='green') plt.title('Truth of Bluff / SVR') plt.xlabel('Position level') plt.ylabel('Salary') plt.show()结果
我们需要了解SVM有几种类型的核(‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’) 。
本文插图
4.5的预测为130101.64 , 8.5为303706.02
我们将regressor = SVR()替换为regressor = SVR(kernel='rbf') , 然后重新运行程序
本文插图
而预测这里有115841.63(4.5)和403162.82(8.5)
最后
【『』支持向量机(SVM)说明及示例】SVM的限制包括:
- SVM算法不适用于大型数据集 。
- 当数据集的噪声较大时 , 支持向量机不能很好地工作 。
- 如果每个数据点的样本数量超过了训练数据样本的数量 , SVM将会表现不佳 。
- 由于支持向量分类器通过在分类超平面的上方和下方放置数据点来工作 , 因此没有概率解释 。
推荐阅读
- 宅客ZhaiiKer|杜比全景声音乐平台Tidal上线,暂只支持Apple TV 4K等少数产品
- |为什么使用B+Tree?
- 提供京东发布“星星之火”计划 全力支持地摊和小店经济
- 于九野|iPhone 6s还能再撑一年?疑似iOS 14支持名单曝光
- 搜狐新闻|报告:苹果 iOS 14 将支持所有运行 iOS 13 的 iPhone
- 我爱音频网|杰理AC6936D蓝牙音频SoC获倍思采用,支持蓝牙5.1,6mA超低功耗
- 机智万象|原创 高管确认荣耀Play4系列将支持红外测温 网友曝光全系配置差异明显
- 天下快谈|iPhone国内销量增加160%,为啥说支持国产,国人却喜欢买苹果?
- 搜狐科技|科大讯飞发布面向年轻人的智能录音笔A1 支持10类语种12种方言转写
- |中兴AXON 11 SE发布:首款支持四大运营商网络5G手机
