机器学习里面的基函数_Python机器学习之“线性回归”

本文介绍了线性回归作为解决回归任务的基础模型,包括简单线性回归和多维度线性回归。通过基函数,如多项式和高斯基函数,可以将线性模型扩展到非线性场景,处理更复杂的数据模式。同时,讨论了正则化技术,如岭回归和Lasso回归,以防止过拟合并提高模型泛化能力。
摘要由CSDN通过智能技术生成

如果说朴素贝叶斯是解决分类任务的好起点,那么线性回归模型就是解决回归任务的好起点。这些模型之所以大受欢迎,是因为它们的拟合速度非常快,而且很容易解释。你可能对线性回归模型最简单的形式(即对数据拟合一条直线)已经很熟悉了,不过经过扩展,这些模型可以对更复杂的数据行为进行建模。

本次将先快速直观地介绍线性回归问题背后的数学基础知识,然后介绍如何对线性回归模型进行一般化处理,使其能够解决数据中更复杂的模式。首先导入常用的程序库:%matplotlib inline

import matplotlib.pyplot as plt

import seaborn as sns; sns.set()

import numpy as np

01/ 简单线性回归

首先来介绍最广为人知的线性回归模型——将数据拟合成一条直线。直线拟合的模型方程为 y = ax + b,其中 a 是直线斜率,b 是直线截距。看看下面的数据,它们是从斜率为 2、截距为 -5 的直线中抽取的散点:

rng = np.random.RandomState(1)

x = 10 * rng.rand(50)

y = 2 * x - 5 + rng.randn(50)

plt.scatter(x, y);

可以用 Scikit-Learn 的 LinearRegression 评估器来拟合数据,并获得最佳拟合直线:from sklearn.linear_model import LinearRegression

model = LinearRegression(fit_intercept=True)

model.fit(x[:, np.newaxis], y)

xfit = np.linspace(0, 10, 1000)

yfit = model.predict(xfit[:, np.newaxis])

plt.scatter(x, y)

plt.plot(xfit, yfit);

数据的斜率和截距都在模型的拟合参数中,Scikit-Learn 通常会在参数后面加一条下划线,即coef_ 和 intercept_:print("Model slope:    ", model.coef_[0])

print("Model intercept:",model.intercept_)

Model slope:     2.0272088103606944

Model intercept: -4.9985770855532

可以看到,拟合结果与真实值非常接近,这正是我们想要的。

然而,LinearRegression 评估器能做的可远不止这些——除了简单的直线拟

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值