机器学习实验——回归预测算法

一、目的和要求

1、理解监督学习和回归预测的基本概念。

2、掌握回归预测五种算法的算法流程。

3、学会编写回归预测五种算法的Python编程方法。

4、会使用回归预测评价方法测评不同的算法性能

二、设备或环境

个人电脑、Anaconda2、Python2.7.10和网络

实验步骤  

1、设计算法步骤和流程

2、根据算法编写Python程序

3、运行机器学习算法程序并调试

内容

针对美国波士顿地区房价数据预测问题,设计不同的回归模型进行预测。

(一):线性回归器

1、写出本例中所用数据的数据描述

该数据共有506条美国波士顿地区房价的数据,每条数据包括对指定房屋的13项数值型特征描述和目标房价。

2、运行Chapter_2.1.2 粘贴线性回归器相关的实验结果,并分别对每一个结果做出解释

数据描述

机器学习实验——回归预测算法_第1张图片

数据分割:

机器学习实验——回归预测算法_第2张图片 

数据标准化处理:

机器学习实验——回归预测算法_第3张图片

 使用线性回归模型进行房价预测:机器学习实验——回归预测算法_第4张图片

 使用回归评价机制对模型的回归性能做出评价:

机器学习实验——回归预测算法_第5张图片

3、在代码中添加查看数据规模和特征维度的语句,粘贴结果。

数据规模506 特征维度13机器学习实验——回归预测算法_第6张图片

 

4、在代码中添加语句用于查看原始数据,粘贴结果。

机器学习实验——回归预测算法_第7张图片

 

5 、对训练集和测试集的目标值标准化之后,添加代码查看标准化之后的y_train和y_test,对比数据标准化之后数据有什么变化?

标准化之前:机器学习实验——回归预测算法_第8张图片

 标准化之后:

机器学习实验——回归预测算法_第9张图片

 数据标准化后将原来的数据进行重新调整,使他们具有标准正态分布的属性

(二):支持向量机

1运行Chapter_2.1.2 粘贴支持向量机相关的实验结果、并分别对每一个结果做出解释

机器学习实验——回归预测算法_第10张图片

 

2 说明支持向量机中核函数的作用

答:可以通过配置不同的核函数来改变模型性能,通过某种函数计算,将原有的特征映射到更高维度的空间,从而尽可能达到新的高维度特征线性可分的程度。

3说明本例中使用的三种核函数(linear’, ‘poly’, ‘rbf’),分析这三种核函数对结果的准确率的影响。

答:liner是最准确的

    linear:线性核函数,是在数据线性可分的情况下使用的,运算速度快,效果好。不足在于它不能处理线性不可分的数据。

poly:多项式核函数,多项式核函数可以将数据从低维空间映射到高维空间,但参数比较多,计算量大。

rbf:高斯核函数(默认),高斯核函数同样可以将样本映射到高维空间,但相比于多项式核函数来说所需的参数比较少,通常性能不错,所以是默认使用的核函数。

(三):K近邻回归

1运行Chapter_2.1.2 粘贴K近邻回归相关的实验结果、并分别对每一个结果做出解释

机器学习实验——回归预测算法_第11张图片

 

2 说明KNeighborsRegressor函数的作用和各参数的含义

作用:用于实现k近邻算法的分类器

n_neighbors:默认情况下kneighbors查询使用的邻居数。就是k的值,选取最近的k个点。

Weights:默认是uniform,参数可以是uniform、distance,也可以是用户自己定义的函数。uniform是均等的权重,就说所有的邻近点的权重都是相等的。distance是不均等的权重,距离近的点比距离远的点的影响大。用户自定义的函数,接收距离的数组,返回一组维数相同的权重。

3在程序中修改KNeighborsRegressor函数的两个参数,观察和记录模型的R_squred、MSE、MAE的变化,找到最优的参数并记录。

机器学习实验——回归预测算法_第12张图片

(四):回归树与集成模型

1运行Chapter_2.1.2 粘贴回归树和三种集成模型相关的实验结果、并分别对每一个结果做出解释

回归树:

机器学习实验——回归预测算法_第13张图片

集成回归:

机器学习实验——回归预测算法_第14张图片 

 

2 通过分析Chapter_2.1.2所有算法的性能指标,说明不同算法对波士顿房价预测的性能差异。

答:使用非线性回归树模型,特别是集成模型,能够取得更高的性能表现

五、实验结果与分析

六、调试和运行程序过程中产生的问题及采取的措施  

七、思考题

1、简述sklearn库中计算R_squared的两种函数方法及其使用。

答:使用LinearRegression模型自带的评估模块,使用SGDRegressor模型自带的评估模块

2、简述sklearn库中class sklearn.svm.SVR()的含义,并说明其核函数的种类和使用方法。

答:SVR非线性回归,linear:线性核函数,是在数据线性可分的情况下使用的,运算速度快,效果好。不足在于它不能处理线性不可分的数据。

poly:多项式核函数,多项式核函数可以将数据从低维空间映射到高维空间,但参数比较多,计算量大。

rbf:高斯核函数(默认),高斯核函数同样可以将样本映射到高维空间,但相比于多项式核函数来说所需的参数比较少,通常性能不错,所以是默认使用的核函数。

使用kernel调用和函数,kernel: str参数 默认为‘rbf’
算法中采用的核函数类型,可选参数有:
‘linear’:线性核函数
‘poly’:多项式核函数
‘rbf’:径像核函数/高斯核
‘sigmod’:sigmod核函数
‘precomputed’:核矩阵
precomputed表示自己提前计算好核函数矩阵,这时候算法内部就不再用核函数去计算核矩阵,而是直接用你给的核矩阵。

你可能感兴趣的:(python,机器学习)