简单线性回归是人工智能和统计学中一个基本的预测技术,用于分析两个连续变量之间的线性关系。在简单线性回归中,我们试图找到一个线性方程来最好地描述这两个变量之间的关系。
一、 基本概念
-
变量:简单线性回归涉及两个变量 - 自变量(independent variable)和因变量(dependent variable)。自变量通常是我们控制或选择的变量,而因变量是我们试图预测的变量。
-
线性关系:假设自变量(X)和因变量(Y)之间存在线性关系,可以表示为 Y = aX + b,其中a是斜率(slope),b是截距(intercept)。
二、模型训练
-
最小二乘法:这是一种数学优化技术,用于找到最佳拟合线,使得所有数据点到回归线的垂直距离(即残差)的平方和最小。
-
斜率和截距:通过数据计算得到的斜率和截距定义了最佳拟合线,可用于预测。
三、应用
简单线性回归在多个领域都有应用,例如:
- 经济学:预测消费者支出、市场趋势。
- 生物学:研究环境变化对物种的影响。
- 工程:分析材料的压力和变形等。
四、优缺点
- 优点:模型简单易懂;计算要求不高;可解释性强。
- 缺点:仅适用于线性关系;对异常值敏感;不适用于复杂的关系或多个自变量的情况。
五、Python示例
1、示例一
在Python中,可以使用scikit-learn库来实现简单线性回归:
from sklearn.linear_model import LinearRegression
import numpy as np
import matplotlib.pyplot as plt
# 示例数据
X = np.array([[1], [2], [3], [4]]) # 自变量
Y = np.array([2, 4, 6, 8]) # 因变量
# 创建模型并拟合数据
model = LinearRegression()
model.fit(X, Y)
# 预测
X_new = np.array([[5]])
y_pred = model.predict(X_new)
# 绘图
plt.scatter(X, Y, color='blue') # 原始数据点
plt.plot(X, model.predict(X), color='red') # 拟合的直线
plt.scatter(X_new, y_pred, color='green') # 预测点
plt.title("Simple Linear Regression")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
y_pred
2、示例二
比如你做了一个企业想要招人,但是不知道月薪应该定在多少,你做了一个月薪和收入的调研,并做一个y=w*x+b的工作年限和薪资的线性模型,来预估你可以每个月给员工发薪资在哪个区间
import pandas as pd
# 导入
url = "https://raw.githubusercontent.com/Salary_Data.csv"
data = pd.read_csv(url)
data
# y = w*x + b
x = data["YearsExperience"]
y = data["Salary"]
x
运行结果:
0 0.3
1 0.6
2 0.8
3 1.1
4 1.3
5 1.5
6 2.0
7 2.2
8 2.9
9 3.0
10 3.2
11 3.2
12 3.7
13 3.9
14 4.0
15 4.0
16 4.1
17 4.5
18 4.9
19 5.1
20 5.3
21 5.9
22 6.0
23 6.8
24 7.1
25 7.9
26 8.2
27 8.7
28 9.0
29 9.5
30 9.6
31 10.3
32 10.5
Name: YearsExperience, dtype: float64
## 下载汉语
!pip install wget
import wget
wget.download("https://github.com/ChineseFont.ttf")
# 运行结果
Collecting wget
Downloading wget-3.2.zip (10 kB)
Preparing metadata (setup.py) ... done
Building wheels for collected packages: wget
Building wheel for wget (setup.py) ... done
Created wheel for wget: filename=wget-3.2-py3-none-any.whl size=9655 sha256=24b9cab9f8aabad3e8e810a1a1322dd97d1b82b03d786e44d7b1a6401a23a8e8
Stored in directory: /root/.cache/pip/wheels/8b/f1/7f/5c94f0a7a505ca1c81cd1d9208ae2064675d97582078e6c769
Successfully built wget
Installing collected packages: wget
Successfully installed wget-3.2
ChineseFont.ttf
定义一个函数实现y=w*x+b模型
def plot_pred(w,b):
y_pred = w*x + b
plt.plot(x,y_pred,c="blue",label="预测线")
plt.scatter(x,y,marker="x",color="red",label="真是数据")
# 添加标题和轴标签
plt.title("年资-薪水")
plt.xlabel("年资")
plt.ylabel("月薪(千)")
plt.xlim([0, 12])
plt.ylim([-60, 140])
plt.legend()
plt.show()
plot_pred(3,10)
引入ipywidgets 模块 自动进行调整w b参数
from ipywidgets import interact
interact(plot_pred,w=(-100,200,1),b=(-100,200,1))
简单线性回归是了解机器学习的一个很好的起点,为理解更复杂的模型打下基础。
3、 scatter函数详解
在Python中,scatter
函数通常用于绘制散点图,它是matplotlib库中的一个功能。散点图是用来展示两个变量之间关系的图表类型,其中每个点的位置由两个变量的值决定。下面是关于scatter
函数的详细用法介绍:
基本用法
首先,你需要导入matplotlib库中的pyplot模块:
import matplotlib.pyplot as plt
基本的scatter
函数用法如下:
plt.scatter(x, y)
plt.show()
这里,x
和 y
是两个相同长度的列表或数组,分别代表散点图中每个点的X和Y坐标。
参数详解
scatter
函数提供了许多参数来自定义散点图:
- s:点的大小。可以是单个值或与数据点数量相同的数组。
- c:点的颜色。可以是颜色名称、RGB值或与数据点数量相同长度的颜色数组。
- marker:表示点的形状,如’o’表示圆形,'s’表示方形等。
- alpha:点的透明度,范围从0(完全透明)到1(完全不透明)。
高级用法
改变点的大小和颜色
你可以根据数据点的某些特性来改变点的大小和颜色。例如,假设你有另一个数组sizes
,用于表示每个点的大小:
plt.scatter(x, y, s=sizes)
plt.show()
同样,如果你有一个数组colors
用于指定每个点的颜色:
plt.scatter(x, y, c=colors)
plt.show()
添加标题和轴标签
为了使图表更加易于理解,你可以添加标题和轴标签:
plt.scatter(x, y)
plt.title("Scatter Plot Example")
plt.xlabel("X Axis Label")
plt.ylabel("Y Axis Label")
plt.show()
颜色条
如果你根据变量给点着色,你可能想添加一个颜色条来表示这种映射:
scatter = plt.scatter(x, y, c=colors)
plt.colorbar(scatter)
plt.show()
示例
以下是一个完整的例子,展示了如何创建一个自定义的散点图:文章来源:https://www.toymoban.com/news/detail-797421.html
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.random.rand(50)
y = np.random.rand(50)
colors = np.random.rand(50)
sizes = 1000 * np.random.rand(50)
# 绘制散点图
plt.scatter(x, y, c=colors, s=sizes, alpha=0.5, cmap='viridis')
plt.colorbar() # 显示颜色条
# 添加标题和轴标签
plt.title("Customized Scatter Plot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
# 展示图表
plt.show()
这段代码创建了一个散点图,其中点的大小和颜色由随机数决定,使用了颜色映射(cmap)来指定颜色范围。文章来源地址https://www.toymoban.com/news/detail-797421.html
到了这里,关于【人工智能】简单线性回归模型介绍及python实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!