0.前言,上次介绍了sklearn中的分类问题。利用了SGDClassifier等方法对mnist数据集进行了相应的分类处理,讨论了二分类以及多分类问题。本次的课程需要进行另外一个机器学习的经典问题线性规划进行讨论,主要从线性与非线性两个方面进行研究。本次所用代码均是由《hands_on_ml_with_sklearn_and_tensorflow》提供的。
1.这次的数据集有很多来源,第一来自:加利福利亚的房价(这个我在测试集划分一文中有介绍点击打开链接),另外就是通过numpy库进行随机点的创建。
2.现在就直接介绍线性规划的方法,在sklearn中有很多方法进行线性规划,接下来我通过代码进行介绍与相关细节的讲解。
2.1LinearRegression
from sklearn.linear_model import LinearRegression
lin_reg = LinearRegression() # 创建一个回归的实例
lin_reg.fit(housing_prepared, housing_labels) # 拟合数据集分别是训练集以及训练标签
some_data = housing.iloc[:5] #因为是一个DataFrame数据类型,所以利用iloc的方法进行处理
some_labels = housing_labels.iloc[:5]
some_data_prepared = full_pipeline.transform(some_data) # 调用full_pipeline对数据进行预处理
print("Predictions:\t", lin_reg.predict(some_data_prepared)) # 调用predict()进行预测
LinearRegression这个方法应该是一个最为常见的方法,这个方法在这里面没什么超参,接着讲X,y利用fit方法进行拟合。X,y的形状分别为,X:[n_samples, n_features],y:[n_samples, n_targets],这个要注意这与之前的分类问题有点不一样。
full_pipeline是进行数据预处理的方法,关于这个预处理的方法是以下的代码: