sklearn-学习笔记(一)LinearRegression

本文通过使用sklearn库的线性回归模型对糖尿病数据集进行分析,展示了如何划分训练集和测试集,训练模型并评估其性能,包括输出模型系数、均方误差和方差得分,并提供了可视化结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# sklern-LinearRegression Example
# diabetes dataset 数据集:糖尿病数据集
print(__doc__)  # 输出文件开头注释内容(Automatically created module for IPython interactive environment)

import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets, linear_model  # 导入数据集和线性模型模块
from sklearn.metrics import mean_squared_error, r2_score

# 导入糖尿病数据集
diabetes = datasets.load_diabetes()

# 仅使用一个特征,选取第三列的特征
diabetes_X = diabetes.data[:, np.newaxis, 2]

# 划分训练集和测试集(手动划分),选取后20个为测试集
diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]
diabetes_y_train = diabetes.target[:-20]
diabetes_y_test = diabetes.target[-20:]

# 线性回归模型
lr = linear_model.LinearRegression()

# 训练模型
lr.fit(diabetes_X_train, diabetes_y_train)

# 用测试集进行预测
diabetes_y_pred = lr.predict(diabetes_X_test)

# 输出模型系数
print("Coefficients:\n", lr.coef_)

# 输出均值平方误差
print("Mean squared error: %.2f" %mean_squared_error(diabetes_y_test, diabetes_y_pred ))

# 方差得分:1是最佳预测
print("Variance score: %.2f"%r2_score(diabetes_y_test, diabetes_y_pred))

# 图像
plt.scatter(diabetes_X_test, diabetes_y_test, color = 'black') # 绘制散点图
plt.plot(diabetes_X_test, diabetes_y_pred, color = 'blue', linewidth = 3)
plt.xticks(())
plt.yticks(())
plt.show()
结果:
Automatically created module for IPython interactive environment
Coefficients:
 [938.23786125]
Mean squared error: 2548.07
Variance score: 0.47

mean_squared_error

r2_score

np.newaxis

Logistic Regression参数说明

参考自:https://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html#sphx-glr-auto-examples-linear-model-plot-ols-py

### 关于 Sklearn学习笔记与教程 #### 什么是 SklearnSklearn(全称为 scikit-learn)是款开源的 Python 机器学习库,它基于 NumPy 和 SciPy 提供了大量的数据挖掘和数据分析工具,并支持多种算法的接口[^2]。 #### Sklearn 的主要功能模块 Scikit-learn 主要涵盖了以下几大领域: 1. **分类**:用于将输入分配到特定类别中的方法。 2. **回归**:用于预测连续数值的方法。 3. **聚类**:无监督学习的种形式,旨在发现数据集内的自然分组。 4. **降维**:减少特征数量的技术,通常用于可视化或提高计算效率。 这些功能通过清晰致的 API 接口实现,便于开发者快速上手并应用到实际问题中[^4]。 --- #### 基本使用流程 以下是使用 Sklearn 进行机器学习建模的标准工作流: 1. 导入必要的模块。 2. 准备数据集(包括特征 `X` 和目标变量 `y`)。 3. 实例化模型对象。 4. 使用 `.fit()` 方法训练模型。 5. 利用 `.predict()` 方法进行预测。 6. 应用评估指标来衡量模型性能。 下面是个简单的线性回归示例代码片段: ```python from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error, r2_score # 示例数据准备 X = [[1], [2], [3], [4]] # 特征值 y = [2, 4, 6, 8] # 目标值 # 数据划分 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 创建模型实例 model = LinearRegression() # 训练模型 model.fit(X_train, y_train) # 预测新数据 predictions = model.predict(X_test) # 性能评估 mse = mean_squared_error(y_test, predictions) r2 = r2_score(y_test, predictions) print(f"Mean Squared Error (MSE): {mse}") print(f"R-squared Score: {r2}") ``` 上述代码展示了如何利用 Sklearn 构建个基本的线性回归模型,并对其进行训练、预测及评价[^5]。 --- #### 回归模型常用的评估指标 在构建回归模型时,可以采用以下几种常见的评估标准: - **均方误差(MSE)**: 衡量预测值与真实值之间差异平方的平均值。 - **绝对误差中位数(Median Absolute Error)**: 测量预测值与真实值之间的绝对差值的中位数。 - **均方对数误差(MSLE)**: 对 MSE 取对数后的版本,适用于目标值范围较大的情况。 - **平均绝对误差(MAE)**: 绝对误差的平均值。 - **决定系数 R²**: 描述模型解释因变量变异性的比例[^3]。 --- #### Sklearn 官方推荐的学习路径 为了帮助初学者更好地掌握该库的功能,官方文档提供了张决策树式的流程图。这张图表指导用户根据具体需求选择合适的算法。例如,在样本数量不足的情况下建议先增加更多数据;而在满足定规模的数据基础上,则可以根据任务类型挑选相应的技术方案。 --- #### §相关问题§ 1. 如何安装 Scikit-Learn 并验证其版本号? 2. 在 Sklearn 中有哪些预处理工具可以帮助我们标准化或者正则化数据? 3. 如果我的问题是二元分类而非回归,应该选用哪些具体的算法? 4. 是否可以通过网格搜索优化超参数?如果可以,请给出简单例子说明。 5. 当面对高维度稀疏矩阵时,Sklearn 提供了什么特别的支持机制吗?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值