Faça ajuste de curva exponencial e logarítmica em Python
- Bibliotecas e módulos usados para ajuste de curva logarítmica e exponencial em Python
- o ajuste da curva logarítmica
- o ajuste da curva exponencial
O ajuste de curvas é uma ferramenta muito eficiente e amplamente utilizada para análise. O método de ajuste de curva estuda a relação entre variáveis independentes que também são conhecidas como preditores e variáveis dependentes conhecidas como variáveis de resposta. Este método visa fornecer o modelo mais adequado para ajustar uma determinada quantidade de pontos de dados.
Existem dois tipos de ajuste de curva:
- Ajuste de curva logarítmica
- Ajuste de curva exponencial
Neste tutorial, mostraremos os métodos de ajuste de curva logarítmica e ajuste de curva exponencial em Python.
Bibliotecas e módulos usados para ajuste de curva logarítmica e exponencial em Python
Vamos discutir as possíveis bibliotecas e módulos que você pode usar para executar programas.
a biblioteca NumPy
As funções que usaremos da biblioteca NumPy
são as seguintes.
array()
- Esta função é usada para criar um arrayNumPy
que é um conjunto do mesmo tipo de valores e tem valor de índice na forma de tuplas.log()
- Esta função é mais uma operação matemática que ajuda a calcular o logarítmico natural de um número. Esse número faz parte dos elementos do array de entrada.exp()
- Esta função também é uma operação matemática usada para calcular o exponencial dos elementos presentes em um array de entradaNumPy
.polyfit()
- Esta função ajuda a ajustar quaisquer dados em uma função polinomial. Ele tem o mínimo de quadrados de um ajuste polinomial.
a biblioteca Matplotlib
A biblioteca Matplotlib
é usada principalmente para plotagem em Python. Essa biblioteca é geralmente usada para criar visualizações em Python. Um módulo desta biblioteca conhecido como módulo pyplot
é usado neste tutorial.
O módulo pyplot
da biblioteca Matplotlib
é um módulo de código aberto que ajuda a fazer a biblioteca Matplotlib
funcionar como o MATLAB. Este módulo tem muitas funções que nos ajudam a realizar operações como criar uma área de plotagem, criar etiquetas em uma plotagem e muito mais.
o ajuste da curva logarítmica
Como o nome sugere, a equação logarítmica é plotada aqui. Vamos pular diretamente para o código que fará o ajuste da curva logarítmica no Python.
import numpy as np
x = np.array([5, 10, 15, 20, 25])
y = np.array([3, 6, 9, 12, 15])
log_x = np.log(x)
log_y = np.log(y)
coefficients = np.polyfit(log_x, y, 1)
print(coefficients)
Produção:
[ 7.2647162 -9.64806344]
Para plotagem, siga este programa.
import matplotlib.pyplot as plt
c = 7.26 * log_x - 9.64
plt.plot(log_x, y, "o")
plt.plot(log_x, c)
Produção:
No programa acima, primeiro importamos as bibliotecas necessárias. Depois disso, criamos duas matrizes NumPy
como nossos dados primários. Em seguida, calculamos os valores logarítmicos dos elementos em ambas as matrizes. Usamos a função polyfit()
para os valores logarítmicos das matrizes x
e y
. Usando a função polyfit()
, os coeficientes da equação logarítmica são retornados.
- Depois de obter os coeficientes, usamos esses coeficientes na equação logarítmica para traçar a curva.
- Finalmente, traçamos o gráfico usando a função
plot()
do módulopyplot
da bibliotecaMatplotlib
.
o ajuste da curva exponencial
Como o nome sugere, a equação exponencial é plotada aqui. Vamos pular diretamente para o código que fará o ajuste da curva exponencial em Python.
import numpy as np
a = np.array([6, 12, 18, 24, 30])
b = np.array([4, 8, 12, 16, 20])
log_a = np.log(a)
log_b = np.log(b)
coefficients = np.polyfit(a, log_b, 1)
print(coefficients)
Produção:
[0.06520038 1.17018581]
Para plotagem, aqui está um trecho de código que você pode seguir.
c = np.exp(1.17) * np.exp(0.06 * a)
plt.plot(a, b, "o")
plt.plot(a, c)
Produção:
O mesmo procedimento é seguido como fizemos no ajuste da curva logarítmica. Mas aqui, a função exponencial é usada em vez da função logarítmica. Assim, os coeficientes retornados pela função polyfit()
são passados na equação da função exponencial.
Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.
LinkedIn