一文彻底搞懂机器学习 - 回归(Regression)

回归(Regression)是机器学习中的一种基本方法,其目标是通过分析自变量与因变量之间的关系,建立一个数学模型来预测因变量的值。

线性回归、多项式回归、正则化线性回归是机器学习中常用的回归分析方法。其中线性回归用直线拟合数据关系,多项式回归用曲线拟合复杂关系,正则化线性回归通过加约束来防止模型过于复杂。

Regression

一、线性回归

****线性回归(Linear Regression)是什么?线性回归是一种统计方法,用于建模两个或多个变量之间的关系。它假设因变量和自变量之间的关系是线性的,并试图找到最小化误差平方和的最佳拟合直线。

如何实现线性回归模型并进行可视化?在Python中实现一个线性回归模型并进行可视化,可以使用scikit-learn库来拟合模型,并使用matplotlib库来进行可视化。

import numpy as np``import matplotlib.pyplot as plt``from sklearn.linear_model import LinearRegression``from sklearn.model_selection import train_test_split``   ``# 生成一些示例数据``np.random.seed(0)  # 设置随机种子以获得可重复的结果``X = 2 * np.random.rand(100, 1)  # 生成100个0到2之间的随机数作为自变量``y = 4 + 3 * X + np.random.randn(100, 1)  # 生成因变量,其中加入了随机噪声``   ``# 将数据集拆分为训练集和测试集``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)``   ``# 使用模型进行预测``y_pred = model.predict(X_test)``   ``# 可视化结果``plt.scatter(X, y, color='blue', label='Data Points')  # 绘制数据点``plt.plot(X_test, y_pred, color='red', linewidth=2, label='Regression Line')  # 绘制回归线``plt.xlabel('X')``plt.ylabel('y')``plt.legend()``plt.title('Linear Regression')``plt.show()``   ``# 打印模型参数``print(f'Intercept: {model.intercept_[0]}')``print(f'Coefficient: {model.coef_[0][0]}')

二、多项式回归

多项式回归(Polynomial Regression)******是什么?多项式回归是线性回归的一种推广,它允许因变量和自变量之间存在非线性关系。通过在传统的线性回归模型中增加变量的高次项(如平方项、立方项等),来捕捉数据中的非线性关系****。**

********如何实现多项式回归模型并进行可视化?在Python中实现多项式回归模型并进行可视化,可以使用numpy来生成数据和计算多项式特征,scikit-learnLinearRegression来拟合模型,以及matplotlib来进行可视化。

import numpy as np``import matplotlib.pyplot as plt``from sklearn.linear_model import LinearRegression``from sklearn.preprocessing import PolynomialFeatures``   ``# 生成一些示例数据``np.random.seed(0)``X = np.sort(5 * np.random.rand(40, 1), axis=0)  # 生成40个0到5之间的随机数并排序作为自变量``y = np.sin(X).ravel() + np.random.normal(0, 0.1, X.shape[0])  # 生成因变量,其中加入了随机噪声``   ``# 定义多项式的次数``degree = 3``   ``# 创建多项式特征``poly = PolynomialFeatures(degree)``X_poly = poly.fit_transform(X)``   ``# 创建线性回归模型并拟合多项式特征数据``model = LinearRegression()``model.fit(X_poly, y)``   ``# 使用模型进行预测``X_test = np.linspace(0, 5, 100).reshape(-1, 1)  # 生成测试数据``X_test_poly = poly.transform(X_test)``y_pred = model.predict(X_test_poly)``   ``# 可视化结果``plt.scatter(X, y, color='blue', label='Data Points')  # 绘制数据点``plt.plot(X_test, y_pred, color='red', linewidth=2, label='Polynomial Regression')  # 绘制多项式回归曲线``plt.xlabel('X')``plt.ylabel('y')``plt.legend()``plt.title(f'Polynomial Regression (degree={degree})')``plt.show()``   ``# 打印模型参数(可选)``# 由于多项式回归的系数较多,这里只打印出来供参考,通常不会直接解释这些系数``print("Model coefficients:", model.coef_)``print("Model intercept:", model.intercept_)

**三、正则化线性回归**

****正则化线性回归(Regularized Linear Regression)****是什么?正则化线性回归是一种用于处理线性回归模型过拟合问题的技术。通过在模型的损失函数中引入额外的惩罚项,限制模型参数的大小,从而减少过拟合的风险。

********正则化线性回归类型****有哪些?****岭回归侧重于通过最小化参数平方和来防止模型过拟合,尤其适用于处理共线性问题;Lasso回归则强调稀疏性,通过推动参数变为零来实现特征选择;弹性网络回归结合了岭回归和Lasso回归的特点,平衡了正则化项,既处理过拟合又进行特征选择。

********如何实现****正则化线性回归模型并进行可视化?在Python中实现正则化线性回归模型并进行可视化,可以使用scikit-learn库来实现岭回归(Ridge Regression)、Lasso回归以及弹性网络回归(Elastic Net Regression),并使用matplotlib库来可视化结果。

import numpy as np``import matplotlib.pyplot as plt``from sklearn.linear_model import Ridge, Lasso, ElasticNet``from sklearn.preprocessing import StandardScaler``from sklearn.pipeline import make_pipeline``from sklearn.model_selection import train_test_split``   ``# 生成示例数据``np.random.seed(0)``X = 2 * np.random.rand(100, 1) - 1  # 生成-1到1之间的随机数作为自变量``y = 4 + 3 * X + np.random.randn(100, 1) * 0.5  # 生成因变量,加入随机噪声``   ``# 标准化数据(对于Lasso和ElasticNet很重要)``scaler = StandardScaler()``X_scaled = scaler.fit_transform(X)``   ``# 拆分数据集为训练集和测试集``X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)``   ``# 定义正则化参数``alpha = 1.0``   ``# 创建岭回归模型并拟合数据``ridge = Ridge(alpha=alpha)``ridge.fit(X_train, y_train)``   ``# 创建Lasso回归模型并拟合数据``lasso = Lasso(alpha=alpha)``lasso.fit(X_train, y_train)``   ``# 创建弹性网络回归模型并拟合数据(这里使用l1_ratio=0.5表示L1和L2正则化的混合)``elastic_net = ElasticNet(alpha=alpha, l1_ratio=0.5)``elastic_net.fit(X_train, y_train)``   ``# 使用模型进行预测``X_test_scaled = scaler.transform(X_test)  # 注意:测试数据也需要经过相同的标准化处理``y_pred_ridge = ridge.predict(X_test_scaled)``y_pred_lasso = lasso.predict(X_test_scaled)``y_pred_elastic_net = elastic_net.predict(X_test_scaled)``   ``# 可视化结果``plt.scatter(X_test, y_test, color='blue', label='Data Points')  # 绘制数据点``plt.plot(X_test, y_pred_ridge, color='red', linewidth=2, label='Ridge Regression')  # 绘制岭回归线``plt.plot(X_test, y_pred_lasso, color='green', linewidth=2, label='Lasso Regression')  # 绘制Lasso回归线``plt.plot(X_test, y_pred_elastic_net, color='purple', linewidth=2, label='Elastic Net Regression')  # 绘制弹性网络回归线``plt.xlabel('X')``plt.ylabel('y')``plt.legend()``plt.title('Regularized Linear Regression')``plt.show()

如何学习AI大模型 ?

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】🆓

CSDN粉丝独家福利

这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】

读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈

(👆👆👆安全链接,放心点击)

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

👉1.大模型入门学习思维导图👈

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
在这里插入图片描述

👉2.AGI大模型配套视频👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。

在这里插入图片描述
在这里插入图片描述

👉3.大模型实际应用报告合集👈

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)

在这里插入图片描述

👉4.大模型落地应用案例PPT👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(全套教程文末领取哈)

在这里插入图片描述

👉5.大模型经典学习电子书👈

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(全套教程文末领取哈)
img

在这里插入图片描述

👉6.大模型面试题&答案👈

截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(全套教程文末领取哈)

在这里插入图片描述
👉学会后的收获:👈
基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习

CSDN粉丝独家福利

这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】

读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈

(👆👆👆安全链接,放心点击)
### 使用 `sklearn` 中的 `LogisticRegression` 进行分类任务 #### 导入必要的库 为了使用 `LogisticRegression`,首先需要导入所需的 Python 库: ```python import numpy as np from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.datasets import load_iris from sklearn.metrics import accuracy_score, classification_report ``` #### 加载并准备数据集 以鸢尾花数据集为例,加载数据并将数据分为训练集和测试集。 ```python # 加载鸢尾花数据集 data = load_iris() X = data.data[data.target != 2] # 只取两个类别的样本 y = data.target[data.target != 2] # 将数据划分为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) ``` #### 创建逻辑回归模型实例 创建一个带有特定求解器的逻辑回归模型对象。这里选择了 `'liblinear'` 求解器,因为该求解器适合于小型数据集并且能够很好地处理二元分类问题[^2]。 ```python model = LogisticRegression(solver='liblinear') ``` #### 训练模型 利用训练数据拟合模型参数。 ```python model.fit(X_train, y_train) ``` #### 预测与评估 应用训练好的模型对未知数据做出预测,并计算性能指标。 ```python predictions = model.predict(X_test) print(f"Accuracy: {accuracy_score(y_test, predictions):.4f}") print("\nClassification Report:") print(classification_report(y_test, predictions)) ``` 上述过程展示了如何构建一个简单的逻辑回归分类器来解决二分类问题。此方法不仅适用于鸢尾花这样的经典案例,在其他场景下也具有良好的泛化能力[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值