机器学习入门实战——支持向量机实战Boston房价数据集

更多支持向量机的理论知识查看:支持向量机

该数据集来源于1978年美国某经济学杂志上。该数据集包含若干波士顿房屋的价格及其各项数据,每个数据项包含14个数据,分别是房屋均价及周边犯罪率、是否在河边等相关信息,其中最后一个数据是房屋均价。

代码实战

这里我们说简单点儿,我们从sklearn中的datasets中导入数据集,导入需要的库,将数据集进行划分,再标准化

from sklearn.datasets import load_boston
boston = load_boston()

from sklearn.cross_validation import train_test_split
import numpy as np

X = boston.data
y = boston.target

X_train,X_test,Y_train,Y_test = train_test_split(X,y,test_size=0.25,random_state=33)

from sklearn.preprocessing import StandardScaler

ss_X = StandardScaler()
ss_Y = StandardScaler()

X_train = ss_X.fit_transform(X_train)
X_test = ss_X.fit_transform(X_test)
Y_train = ss_Y.fit_transform(Y_train)
Y_test = ss_Y.fit_transform(Y_test)

由于支持向量机的核函数我们可以自己选择,所以我们选择三种核函数进行对比

from sklearn.svm import SVR
linear_svr = SVR(kernel='linear')
linear_svr.fit(X_train,Y_train)
linear_svr_y_predict = linear_svr.predict(X_test)

poly_svr = SVR(kernel='poly')
poly_svr.fit(X_train,Y_train)
poly_svr_y_predict = poly_svr.predict(X_test)

rbf_svr = SVR(kernel='rbf')
rbf_svr.fit(X_train,Y_train)
rbf_svr_y_predict = rbf_svr.predict(X_test)

我们来分别检测一下模型的性能

from sklearn.metrics import r2_score,mean_squared_error,mean_absolute_error
print("The value of R-squared of linear SVR is",linear_svr.score(X_test,Y_test))
print("The mean squared error of linear SVR is",mean_squared_error(ss_Y.inverse_transform(Y_test),ss_Y.inverse_transform(linear_svr_y_predict)))
print("The mean absolute error of linear SVR is",mean_absolute_error(ss_Y.inverse_transform(Y_test),ss_Y.inverse_transform(linear_svr_y_predict)))

print("The value of R-squared of poly SVR is",poly_svr.score(X_test,Y_test))
print("The mean squared error of poly SVR is",mean_squared_error(ss_Y.inverse_transform(Y_test),ss_Y.inverse_transform(poly_svr_y_predict)))
print("The mean absolute error of poly SVR is",mean_absolute_error(ss_Y.inverse_transform(Y_test),ss_Y.inverse_transform(poly_svr_y_predict)))

print("The value of R-squared of RBF SVR is",rbf_svr.score(X_test,Y_test))
print("The mean squared error of RBF SVR is",mean_squared_error(ss_Y.inverse_transform(Y_test),ss_Y.inverse_transform(rbf_svr_y_predict)))
print("The mean absolute error of RBF SVR is",mean_absolute_error(ss_Y.inverse_transform(Y_test),ss_Y.inverse_transform(rbf_svr_y_predict)))

The value of R-squared of linear SVR is 0.654497663771
The mean squared error of linear SVR is 26.7906984256
The mean absolute error of linear SVR is 3.41002068375
The value of R-squared of poly SVR is 0.23496198912
The mean squared error of poly SVR is 59.3220377532
The mean absolute error of poly SVR is 4.19595019294
The value of R-squared of RBF SVR is 0.71072756206
The mean squared error of RBF SVR is 22.4305593192
The mean absolute error of RBF SVR is 2.81406224321

代码参考:《Python机器学习及实践:从零开始通往Kaggle竞赛之路》

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 机器学习实战Python基于支持向量机SVM)是一种强大的分类器算法。SVM是一种监督学习方法,可以用于解决二分类和多分类问题。 SVM的基本思想是找到一个最佳的超平面,将数据分割成不同的类别。超平面被定义为在n维空间中具有n-1维的子空间。这个子空间可以将不同类别的数据点分开,并且尽可能地最大化边界。这就意味着SVM在分类时尽量避免误分类,并且对于新的未知数据具有较好的泛化能力。 在Python中,我们可以使用scikit-learn库中的SVM实现机器学习任务。首先,我们需要导入必要的库和数据集。然后,我们可以对数据集进行预处理,如特征缩放和数据划分。接下来,我们可以创建一个SVM分类器,并使用训练数据进行模型的训练。训练完成后,我们可以使用测试数据进行预测,并评估模型的性能。 SVM还有一些重要的参数需要调节,如C和gamma。C表示惩罚项的权重,用于控制分类器的错误率和边界的平衡。较大的C值会减小错误率,但可能导致边界过拟合。gamma表示径向基函数核的参数,影响分类器的决策边界的灵活性。较大的gamma值会导致边界更加精确地拟合训练数据,但可能导致过拟合。 总的来说,机器学习实战Python基于支持向量机SVM)是一个强大的分类器算法,可以用于解决二分类和多分类问题。在实际应用中,我们需要注意调节参数,使得分类器具有良好的泛化能力。 ### 回答2: 机器学习实战是一本非常实用的书籍,其中详细介绍了如何使用Python编程语言基于支持向量机SVM进行机器学习实践。 支持向量机是一种强大的监督学习算法,可以用于解决分类和回归问题。该算法通过寻找一个最优的超平面来分割样本空间,使得不同类别的样本尽可能远离超平面。实际上,SVM通过最大化支持向量与超平面的距离,来确保分类的准确性和泛化能力。 在书籍中,作者通过经典的例子和详细的代码示例,展示了如何应用Python编程语言和scikit-learn库来构建和训练SVM模型。读者将学会如何准备数据集进行特征选择和数据预处理,选择合适的SVM参数以及评估模型的性能。 此外,书中还强调了交叉验证、网格搜索和模型调优等重要概念。这些概念是整个机器学习过程中不可或缺的一部分,能够帮助我们提高模型的准确性和可靠性。 机器学习实战还提供了丰富的示例和应用,涵盖了多个领域,如文本分类、手写数字识别和人脸识别等。通过这些实例,读者可以深入理解SVM在实际问题中的应用。 总而言之,机器学习实战是一本非常实用的书籍,提供了丰富的例子和代码,使读者能够快速上手并应用SVM算法解决实际问题。无论是对于初学者还是有一定机器学习经验的人来说,这本书都是一本值得推荐的学习资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Quanfita

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值