【ML】SVMR

来源:互联网 发布:php项目源代码 编辑:程序博客网 时间:2024/06/11 18:57

关于Support Vector Machine Regression的网站介绍。http://kernelsvm.tripod.com/

在文章http://blog.csdn.net/wiki_su/article/details/78432905中,我们预测出的结果是16K.

但是我们用SVR来看的话,16K的结果是不准确地。

import numpy as npimport matplotlib.pyplot as pltimport pandas as pd#import datasetdataset = pd.read_csv('Position_Salaries.csv')#生成一个二矩阵X = dataset.iloc[:,1:2].valuesy = dataset.iloc[:,2:3].values#数据规范化from sklearn.preprocessing import StandardScalersc_X = StandardScaler()sc_y = StandardScaler()X = sc_X.fit_transform(X)y = sc_y.fit_transform(y)#y = dataset.iloc[:,2:3].values  格式不兼容from sklearn.svm import SVRregressor = SVR(kernel = 'rbf')regressor.fit(X,y)#数组 转换y_pred = regressor.predict(6.5)y_pred = sc_y.inverse_transform(regressor.predict(sc_X.fit_transform(np.array([[6.5]])))) #数据可视化(多项) 分割x_grid = np.arange(min(X), max(X), 0.1)x_grid = x_grid.reshape(len(x_grid), 1)plt.scatter(X,y,color = 'red')plt.title = ('Truth or Bluff(Linear Regression)')plt.plot(X ,regressor.predict(X),color = 'blue')plt.xlabel = ('Position Level')plt.ylabel = ('Salary')plt.show()

我们来看下结果:

我们的最后的预测是13K。所以上文预测的16K是不正确的!

另外提一点:

使用SVR,我们对数据进行了规范化。
因为如果不规范化,我们得到的数据非常尴尬。

上图中,x轴,y轴差的太多了。所以看起来如此。
因为一条弧线,如果放大超级多倍,看起来就像一条直线。

所以我们进行数据规范化。
在这里可以很明显的看到数据规范化的作用!!

原创粉丝点击