Mã Python hồi quy hàm mũ

Trong thế giới ngày nay, tầm quan trọng của việc tiến hành nghiên cứu khoa học dữ liệu đang đạt được động lực mỗi ngày. Điều này áp dụng cho rất nhiều khía cạnh trong cuộc sống của một cá nhân và của toàn xã hội. Mô hình hóa chính xác các quá trình xã hội, kinh tế và tự nhiên là rất quan trọng

Một trong những quy trình quan trọng trong phân tích dữ liệu là quy trình xấp xỉ. Nếu bạn ước tính chính xác dữ liệu có sẵn, thì có thể ước tính và dự đoán các giá trị trong tương lai. Do đó, có thể đưa ra dự báo thời tiết, ước tính sơ bộ về giá dầu, phát triển kinh tế, các quá trình xã hội trong xã hội, v.v. Hầu hết các quá trình trong tự nhiên được mô tả bằng các hàm số mũ. Hàm mũ trong Python được tính toán dễ dàng bằng hàm chuẩn từ thư viện toán học của nó. Hãy xem xét chính xác chức năng là gì và xấp xỉ của nó

Hàm là gì?

Hàm (quan hệ, toán tử, phép biến đổi) trong toán học xác định sự tương ứng giữa các phần tử của hai tập hợp, được thiết lập theo quy tắc sao cho mỗi phần tử của tập hợp thứ nhất tương ứng với một và chỉ một phần tử của tập hợp thứ hai

Khái niệm toán học của một hàm thể hiện một ý tưởng trực quan về cách một giá trị xác định hoàn toàn giá trị của một giá trị khác

Thông thường, thuật ngữ "hàm" dùng để chỉ một hàm số, nghĩa là một hàm đặt một số tương ứng với một số khác

Nghiêm ngặt hơn, hàm f ánh xạ tập X thành tập Y. Hàm số còn được ký hiệu là y = f(x)

Trong toán học và khoa học dữ liệu, đây là một trong những khái niệm cơ bản để tính toán và phân tích dữ liệu. Chức năng có thể được biểu diễn dưới dạng đồ họa;

Mã Python hồi quy hàm mũ

Hình ảnh

Một hàm số mũ và tại sao nó lại quan trọng trong khoa học dữ liệu?

Như đã nêu trước đó, rất nhiều quy trình có thể được mô tả bằng cách sử dụng hàm mũ. Hàm y = Exp(x) là hàm mũ có cơ số e = 2. 718281828, tôi. e. số Euler. Tăng trưởng theo cấp số nhân là sự tăng lên về giá trị mà tốc độ tăng trưởng đó tỉ lệ thuận với lượng giá trị bản thân. Mời các bạn xem bảng và đồ thị sau để hiểu rõ bản chất của tăng trưởng theo cấp số nhân

Hàm mũ Python có sẵn trong thư viện toán học và có thể được gọi như sau

import math

math.exp(x)

Bạn có thể tìm thêm thông tin về hàm lũy thừa exp() trong tài liệu này

xy = exp(x)12. 71828182827. 389056099320. 08553692454. 598150035148. 41315916403. 428793571096. 63315882980. 95798798103. 0839281022026. 46579

Mã Python hồi quy hàm mũ
 

Hãy nhớ rằng hàm mũ phát triển rất nhanh với số gia nhỏ của đối số x và có khả năng tạo ra tràn. Ví dụ khi x=100 thì i. e. exp(100) sẽ cho ta số 2 rất lớn. 6881171e+43

Cách tính gần đúng một tập hợp dữ liệu theo hàm mũ

xấp xỉ (vĩ độ. proxima - gần nhất) là một phương pháp khoa học bao gồm việc thay thế một số đối tượng bằng những đối tượng khác, theo một nghĩa nào đó, gần với nguyên bản nhưng đơn giản hơn

Tính gần đúng cho phép người ta nghiên cứu các đặc tính số và thuộc tính định tính của một đối tượng, giảm vấn đề thành nghiên cứu các đối tượng đơn giản hơn hoặc thuận tiện hơn (ví dụ: những đối tượng có đặc điểm dễ tính toán hoặc có thuộc tính đã biết)

Bạn có thể ước tính các giá trị đầu vào bằng cách sử dụng các hàm xấp xỉ. Xấp xỉ được sử dụng phổ biến nhất là tuyến tính, đa thức và hàm mũ

Bài toán bình phương nhỏ nhất phi tuyến tính

Phương pháp bình phương nhỏ nhất là phương pháp tìm các tham số hồi quy tuyến tính tối ưu, sao cho tổng các sai số bình phương (phần dư hồi quy) là nhỏ nhất. Phương pháp này bao gồm giảm thiểu khoảng cách Euclide giữa hai vectơ, i. e. vectơ của các giá trị được khôi phục của biến phụ thuộc và vectơ của các giá trị thực của biến phụ thuộc

Phương thức này rất thường được sử dụng để tối ưu hóa và hồi quy, cũng như thư viện Python scipy trong phương thức scipy. tối ưu hóa. curve_fit() thực hiện hiệu quả thuật toán này. Nếu chúng ta áp dụng hàm mũ và tập dữ liệu x và y cho đầu vào của phương pháp này, thì chúng ta có thể tìm đúng số mũ cho phép tính gần đúng

Mã Python hồi quy hàm mũ

Hình ảnh

Mã Python cho ví dụ gần đúng

Hãy giải bài toán xấp xỉ tập dữ liệu bằng cách sử dụng số mũ. Tất nhiên, cần lưu ý rằng không phải tất cả dữ liệu đều có thể được tính gần đúng bằng cách sử dụng số mũ, nhưng trong nhiều trường hợp khi quy luật thay đổi hoặc hàm số mũ, điều này hoàn toàn có thể xảy ra

Ví dụ: lấy dữ liệu mô tả sự gia tăng theo cấp số nhân trong sự lây lan của vi-rút. Dữ liệu này có thể được xấp xỉ khá chính xác bằng hàm số mũ, ít nhất là theo từng phần dọc theo trục X

Để làm điều này, chúng tôi sẽ sử dụng bộ tiêu chuẩn từ Python, thư viện numpy, phương thức toán học từ thư viện sсipy và thư viện biểu đồ matplotlib

Hàm exp của Python từ gói numpy giúp giải quyết tác vụ này. Hàm số mũ Numpy có thể được gọi theo cách tương tự như trong thư viện toán học, nhưng nó lấy một mảng để nhập liệu

import numpy as np
in = [1, 2, 3, 4, 5]
out = np.exp(in)

Bạn có thể tìm thêm thông tin về hàm số mũ numpy exp() trong tài liệu này.  

Để tìm các tham số của một hàm mũ dạng y = a * exp(b * x), ta sử dụng phương pháp tối ưu. Để làm điều này, scipy. tối ưu hóa. curve_fit() hàm phù hợp với chúng ta. Phương pháp này sử dụng thuật toán bình phương tối thiểu phi tuyến tính để khớp với hàm mà chúng tôi chỉ định ở đầu vào

Xấp xỉ hàm mũ rất phổ biến trong các lĩnh vực khác nhau của kỹ thuật, phương pháp số, ứng dụng thống kê, học máy, v.v. Nó cho phép bạn tạo sự khác biệt và tích hợp một cách rất dễ dàng

Đây là một trong những phương pháp tối ưu hóa, bạn có thể tìm thêm chi tiết tại đây. Nếu chúng ta tìm thấy a và b như vậy mà chúng ta có thể mô tả rất giống quy luật của mối quan hệ x, y trong dữ liệu, thì chúng ta có cơ hội xây dựng một hàm cho các giá trị mới khác của đối số. Điều này cho phép bạn, ví dụ: dự đoán sự phát triển của hàm cho các giá trị sau dọc theo trục X

Xem scipy. tối ưu hóa. hướng dẫn sử dụng chức năng curve_fit() để biết thêm chi tiết tại đây.  

Bây giờ hãy xem một đoạn mã Python nhỏ

  1. Chỉ định giá trị đầu vào cho x, y
  2. Sử dụng curve_fit(), tính giá trị của a, b trong hàm mũ
  3. Hàm số mũ được định nghĩa là hàm lambda lambda x1, a, b. một * numpy. kinh nghiệm (b * x1)
  4. Sau đó vẽ biểu đồ dữ liệu gốc (màu xanh), dữ liệu xấp xỉ (màu đỏ)
import numpy
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
 
x = numpy.arange(1, 31, 1)
y = numpy.array([3,7,14,16,26,47,73,84,113,196,218,310,356,475,548,645,794,
            942,1096,1251,1319,1462,1668,1892,2203,2511,2777,3102,3372,3764])

[a, b], res1 = curve_fit(lambda x1,a,b: a*numpy.exp(b*x1),  x,  y)

y1 = a * numpy.exp(b * x)
 
plt.plot(x, y, 'b')
plt.plot(x, y1, 'r')
plt.show()

Mã Python hồi quy hàm mũ

Biểu đồ này cho thấy đường cong màu đỏ (dữ liệu gần đúng sử dụng số mũ) và đường cong màu xanh lam (dữ liệu thực) mô tả chính xác bản chất của thay đổi dữ liệu

Điều đáng chú ý là bạn có thể nhận được một giá trị sai số xấp xỉ đủ lớn nếu ký tự dữ liệu đầu vào của bạn tuân theo một số phụ thuộc khác khác với phụ thuộc hàm mũ. Trong trường hợp này, biểu đồ được chia thành các phần riêng biệt và bạn có thể thử tính gần đúng từng phần với số mũ của nó. Hoặc chọn một hàm xấp xỉ khác, ví dụ đa thức

Phần kết luận

Kết thúc bài viết này về xấp xỉ dữ liệu bằng cách sử dụng hàm mũ, hãy lưu ý rằng hiện nay có những công cụ rất tốt và hiệu quả để giải một bài toán quan trọng như vậy. Sử dụng ngôn ngữ Python và các thư viện như numpy và scipy, bạn có thể dễ dàng làm nên điều kỳ diệu trong khoa học dữ liệu, như được minh họa trong tác vụ này. Khả năng xấp xỉ bằng cách sử dụng hàm mũ trong phép tính gần đúng đầu tiên giúp đưa ra dự đoán cho một loại nhiệm vụ nhất định trong nền kinh tế, hiện tượng tự nhiên và trong lĩnh vực xã hội. Chúng tôi đã giải thích rõ ràng cách tính hàm số mũ trong Python và mô tả các phương pháp tính gần đúng của nó

Các chuyên gia khoa học dữ liệu của chúng tôi được đào tạo rất bài bản để giải quyết các vấn đề phi tiêu chuẩn. Svitla Systems làm việc với các dự án phức tạp và có nhiều kinh nghiệm. Chúng tôi biết cách đáp ứng các yêu cầu của khách hàng, điều phối các yêu cầu của dự án ở chế độ linh hoạt và duy trì giao tiếp hiệu quả