引言
回归分析是机器学习中一种重要的预测方法,它用于预测连续数值输出。scikit-learn作为Python中一个强大的机器学习库,提供了多种回归算法。本文将通过实战案例解读,帮助读者深入了解scikit-learn回归分析的秘密,并掌握其预测力。
scikit-learn简介
scikit-learn是一个开源的Python机器学习库,它建立在NumPy、SciPy和matplotlib等科学计算库之上。它提供了简单而高效的工具,包括数据预处理、特征选择、模型训练和评估等功能。
回归分析原理
回归分析旨在建立因变量与自变量之间的数学模型,通过模型对未来的观测结果进行预测。常见的回归模型包括线性回归、逻辑回归、岭回归等。
实战案例:房价预测
以下将使用波士顿房价数据集,通过线性回归模型进行房价预测。
数据准备
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
# 加载数据集
boston = load_boston()
X = boston.data
y = boston.target
# 拆分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
数据预处理
from sklearn.preprocessing import StandardScaler
# 标准化特征
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
模型训练
from sklearn.linear_model import LinearRegression
# 创建线性回归模型
model = LinearRegression()
# 训练模型
model.fit(X_train_scaled, y_train)
模型评估
from sklearn.metrics import mean_squared_error, r2_score
# 预测测试集
y_pred = model.predict(X_test_scaled)
# 计算评估指标
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f"均方误差(MSE): {mse}")
print(f"R²分数: {r2}")
实战案例:客户细分
以下将使用鸢尾花数据集,通过K-means聚类算法进行客户细分。
数据准备
from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
# 加载数据集
iris = load_iris()
X = iris.data
# 创建K-means模型
kmeans = KMeans(n_clusters=3, random_state=42)
# 训练模型
kmeans.fit(X)
# 预测标签
labels = kmeans.predict(X)
模型评估
from sklearn.metrics import silhouette_score
# 计算轮廓系数
silhouette = silhouette_score(X, labels)
print(f"轮廓系数: {silhouette}")
总结
通过以上实战案例,读者可以了解到scikit-learn回归分析的基本原理和实战操作。在实际应用中,可以根据具体问题选择合适的回归模型和评估指标,以提高预测力。