下面是Python scikit-learn做线性回归的完整攻略。
1. 什么是线性回归?
线性回归是一种用于预测一个连续值输出的经典的机器学习算法。其主要思想是通过已知的一些自变量(或称为特征)训练得到一个关系模型,并利用这个模型对未知的自变量对应的因变量(或称为标签)进行预测。
在实际应用中,线性回归可以用于很多场景,如房价预测、销售额预测等。
2. Python scikit-learn如何实现线性回归?
Python scikit-learn是一个流行的机器学习框架,其提供了很多已经实现好的机器学习算法,包括线性回归。
下面是一个简单的线性回归代码示例:
# 导入必要的库
import numpy as np
from sklearn.linear_model import LinearRegression
# 准备训练数据
X = np.array([[1, 1], [1, 2], [2, 2], [2, 3]])
y = np.dot(X, np.array([1, 2])) + 3
# 构建线性回归模型并训练
reg = LinearRegression().fit(X, y)
# 输出模型参数
print(reg.coef_)
# 预测新数据
print(reg.predict(np.array([[3, 5]])))
在上述代码中,我们首先导入必要的库,然后准备训练数据。其中,X是自变量,y是因变量。我们使用np.dot()
函数构造y,求得系数向量[1,2]和常量3。
接着,我们使用LinearRegression()
函数创建一个线性回归模型,并调用其fit()
函数对模型进行训练。训练完成后,我们可以使用coef_
属性查看模型的系数向量。
最后,我们使用predict()
函数对新数据进行预测。如上述代码预测的结果为[16]。
另外,我们还可以使用scikit-learn提供的其他线性回归算法,如Lasso、Ridge等。
下面是Lasso算法的示例代码:
# 导入必要的库
from sklearn.linear_model import Lasso
from sklearn.datasets import load_boston
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
# 加载数据集
X, y = load_boston(return_X_y=True)
# 标准化数据
X = StandardScaler().fit_transform(X)
# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# 构建并训练模型
reg = Lasso(alpha=0.1)
reg.fit(X_train, y_train)
# 输出模型参数和评估结果
print(reg.coef_)
print(reg.score(X_test, y_test))
在上述代码中,我们首先导入必要的库,并加载波士顿房价数据集。我们使用StandardScaler()
函数对数据进行标准化,并使用train_test_split()
函数对数据集进行划分。
接着,我们使用Lasso()
函数创建一个Lasso线性回归模型并调用其fit()
函数对模型进行训练。训练完成后,我们可以使用coef_
属性查看模型的系数向量。我们可以看到,Lasso算法会将某些特征的系数设为0,因此可以用于特征选择。
最后,我们使用score()
函数对测试数据进行评估。上述代码输出的评估结果为0.63。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python scikit-learn 做线性回归的示例代码 - Python技术站