VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • python关于拟合的实现

嘿,说到拟合,这可是咱们全栈开发中数据分析、机器学习里头的常客了。Python里头拟合数据,咱们常用的库就是NumPy和SciPy,当然,还有强大的机器学习库scikit-learn。今儿个,我就给你简单聊聊这几个库里头拟合数据的那些事儿。
 
### 用NumPy拟合线性数据
 
NumPy虽然主要是干数值计算这块的,但它也提供了个`polyfit`函数,能帮咱们拟合多项式。比如说,拟合个线性数据:
 
import numpy as np
import matplotlib.pyplot as plt
 
# 假设咱们有些数据点
x = np.array([1, 2, 3, 4, 5])
y = np.array([1, 3, 2, 5, 4])
 
# 拟合一次多项式(就是线性拟合啦)
coefficients = np.polyfit(x, y, 1)
polynomial = np.poly1d(coefficients)
 
# 预测值
y_pred = polynomial(x)
 
# 画图瞅瞅
plt.scatter(x, y, label='Data points')
plt.plot(x, y_pred, label='Fitted line', color='red')
plt.legend()
plt.show()
 
### 用SciPy拟合非线性数据
 
SciPy里头有个`curve_fit`函数,这个函数能拟合各种自定义的非线性函数。比如说,拟合个二次函数:
 
from scipy.optimize import curve_fit
 
# 自定义个二次函数
def quadratic(x, a, b, c):
    return a * x**2 + b * x + c
 
# 假设咱们有些数据点
x = np.array([1, 2, 3, 4, 5])
y = np.array([1, 4, 9, 16, 25])  # 完美二次函数数据
 
# 拟合数据
params, covariance = curve_fit(quadratic, x, y)
 
# 打印拟合参数
print(f"Fitted parameters: a={params[0]}, b={params[1]}, c={params[2]}")
 
# 预测值
y_pred = quadratic(x, *params)
 
# 画图瞅瞅
plt.scatter(x, y, label='Data points')
plt.plot(x, y_pred, label='Fitted curve', color='red')
plt.legend()
plt.show()
 
### 用scikit-learn拟合复杂模型
 
scikit-learn里头拟合模型就更方便了,它封装了好多常用的机器学习算法。比如说,拟合个线性回归模型:
 
from sklearn.linear_model import LinearRegression
 
# 假设咱们有些数据点
x = np.array([[1], [2], [3], [4], [5]]).T  # 注意,scikit-learn里头X得是个二维数组
y = np.array([1, 3, 2, 5, 4])
 
# 创建模型
model = LinearRegression()
 
# 拟合数据
model.fit(x, y)
 
# 打印拟合参数
print(f"Coefficient: {model.coef_[0]}, Intercept: {model.intercept_}")
 
# 预测值
y_pred = model.predict(x)
 
# 画图瞅瞅
plt.scatter(x, y, label='Data points')
plt.plot(x, y_pred, label='Fitted line', color='red')
plt.legend()
plt.show()
 
怎么样,这几种拟合方法是不是都挺方便的?NumPy适合快速拟合简单的多项式,SciPy适合拟合自定义的非线性函数,而scikit-learn则适合拟合各种复杂的机器学习模型。具体用哪个,还得看你的数据和需求啦。

最后,如果你对python语言还有任何疑问或者需要进一步的帮助,请访问https://www.xin3721.com 本站原创,转载请注明出处:


相关教程