首页 > 极客资料 博客日记
从零开始学机器学习——了解回归
2024-09-25 09:30:02极客资料围观18次
首先给大家介绍一个很好用的学习地址:https://cloudstudio.net/columns
回归
今天我们将深入探讨回归分析的概念。回归分析是统计学中一种重要的方法,通常分为线性回归和逻辑回归两种类型。它们分别用于不同的数据模型和分析需求。为了更直观地理解它们的作用,让我们先通过一个图表来感受一下它们的应用场景和效果:
线性回归是一种统计学方法,通过利用已知相关数据来预测未知数据的值。它通过数学建模将未知变量(或因变量)与已知变量(或自变量)之间的关系表示为线性方程,从而揭示它们之间的线性关系。
逻辑回归是一种常用的数据分析技术,其目的在于通过数学建模揭示两个数据因子之间的关系。通过这种关系,逻辑回归可以根据其中一个因子的值来预测另一个因子的可能性。通常情况下,预测结果是有限的,例如二元分类(是或否)。
数据可视化
在机器学习领域,数据可视化对于深入理解数据的分布、特征之间的关系以及模型的表现至关重要。matplotlib作为一个功能强大的绘图库,提供了丰富的绘图功能,能够轻松地创建各种类型的图表,包括但不限于折线图、散点图、直方图等。这些图表不仅能够直观地展示数据,还能帮助分析者快速洞察数据的结构和趋势。
数据可视化还具有重要的演示作用,能够通过直观的图表帮助学者更轻松地理解数据,提升信息的可读性和传达效果。
import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets, linear_model, model_selection
X, y = datasets.load_diabetes(return_X_y=True)
X = X[:, np.newaxis, 2]
X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33)
model = linear_model.LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
plt.scatter(X_test, y_test, color='black')
plt.plot(X_test, y_pred, color='blue', linewidth=3)
plt.show()
与 Python 中的某些库一样,Scikit-learn 库也附带了一组内置数据集。您需要先导入数据集库,才能访问所选的特定数据集。在以上示例中,导入数据集。该数据集包含来自糖尿病患者的数据,并包含某些特征,例如他们的 bmi(体重指数)、年龄、血压和葡萄糖水平
关键代码解析一下:
- 使用model_selection.train_test_split()将数据集划分为训练集 (X_train, y_train) 和测试集 (X_test, y_test),其中测试集占比为33%
- 使用训练集数据 (X_train, y_train) 对线性回归模型进行训练,即 model.fit(X_train, y_train)。
- 使用训练好的模型对测试集 (X_test) 进行预测,得到预测值 y_pred。
- 使用 matplotlib 绘制散点图 (plt.scatter()) 表示测试集数据点。
- 使用 plt.plot() 绘制回归模型在测试集上的预测结果曲线,以及用蓝色线条表示的拟合直线。
- 最后通过 plt.show() 显示图形。
以此为例,通过可视化图表展示的数据更加直观易懂。
总结
在本文中,我们探讨了回归分析在统计学和数据分析中的重要性和应用。线性回归和逻辑回归作为两种主要的回归分析方法,分别适用于不同类型的数据建模和预测需求。通过数学建模,它们能够揭示变量之间的关系,并且在实际应用中展现了强大的预测能力。
数据可视化在深入理解数据特征和模型表现方面起到了关键作用。通过图表如折线图、散点图和直方图,我们能够直观地展示数据分布和趋势,帮助分析者快速洞察数据的结构和模式。特别是在机器学习中,这些可视化技术不仅提升了数据分析的效率,还增强了信息的传达和理解效果。
通过本文的学习,我们不仅深入了解了回归分析的理论基础和实际操作,还通过实例展示了如何利用Python中的相关库进行数据建模和可视化分析。
我是努力的小雨,一名 Java 服务端码农,潜心研究着 AI 技术的奥秘。我热爱技术交流与分享,对开源社区充满热情。同时也是一位腾讯云创作之星、阿里云专家博主、华为云云享专家、掘金优秀作者。
💡 我将不吝分享我在技术道路上的个人探索与经验,希望能为你的学习与成长带来一些启发与帮助。
🌟 欢迎关注努力的小雨!🌟
标签:
相关文章
最新发布
- Nuxt.js 应用中的 prerender:routes 事件钩子详解
- 【问题解决】Tomcat由低于8版本升级到高版本使用Tomcat自带连接池报错无法找到表空间的问题
- 【FAQ】HarmonyOS SDK 闭源开放能力 —Vision Kit
- 六、Spring Boot集成Spring Security之前后分离认证流程最佳方案
- 《JVM第7课》堆区
- .NET 8 高性能跨平台图像处理库 ImageSharp
- 还在为慢速数据传输苦恼?Linux 零拷贝技术来帮你!
- 刚毕业,去做边缘业务,还有救吗?
- 如何避免 HttpClient 丢失请求头:通过 HttpRequestMessage 解决并优化
- 让性能提升56%的Vue3.5响应式重构之“版本计数”