Usando algebra linear com Python e Streamlit

27 de maio de 2024 Off Por Marcelo Martins

Neste artigo, iremos publicar um gráfico (Dashboard) que expoem um grafico de algebra linear.

A álgebra linear é um ramo da matemática que lida com vetores, matrizes e sistemas lineares de equações. É uma ferramenta fundamental em muitas áreas da ciência e engenharia devido à sua capacidade de representar e resolver problemas em múltiplas dimensões de forma eficiente.

Conceitos Básicos da Álgebra Linear

  1. Vetores: Objetos que têm magnitude e direção. Em álgebra linear, são frequentemente representados como listas de números (coordenadas).
  2. Matrizes: Arranjos retangulares de números que podem representar transformações lineares, sistemas de equações lineares, entre outros. Uma matriz é essencialmente uma coleção de vetores dispostos em linhas e colunas.
  3. Operações Lineares: Incluem adição de vetores, multiplicação de vetores por escalares, multiplicação de matrizes, entre outras. Essas operações seguem regras específicas que mantêm a linearidade.
  4. Sistemas Lineares: Conjuntos de equações lineares que podem ser resolvidos usando técnicas da álgebra linear para encontrar os valores das variáveis.

Aplicações da Álgebra Linear

  1. Ciência de Dados e Aprendizado de Máquina:
    • Regressão Linear: Utilizada para encontrar a melhor linha de ajuste para um conjunto de dados.
    • Redução de Dimensionalidade: Métodos como Análise de Componentes Principais (PCA) utilizam álgebra linear para reduzir a dimensionalidade dos dados, mantendo as características mais importantes.
    • Redes Neurais: A álgebra linear é usada para calcular as operações de multiplicação de matrizes que são fundamentais no treinamento de redes neurais.
  2. Engenharia:
    • Análise de Circuitos: Utilizada para resolver sistemas de equações lineares que representam circuitos elétricos.
    • Mecânica Estrutural: A álgebra linear ajuda a analisar forças e tensões em estruturas, permitindo a modelagem de comportamentos estáticos e dinâmicos.
  3. Computação Gráfica:
    • Transformações Geométricas: Rotação, translação e escalonamento de objetos em gráficos 3D são realizados usando matrizes.
    • Renderização: Técnicas de renderização utilizam álgebra linear para calcular a interação da luz com superfícies.
  4. Economia e Finanças:
    • Modelagem Econômica: Matrizes são usadas para representar e resolver modelos econômicos que envolvem múltiplas variáveis interdependentes.
    • Análise de Carteiras: Utilizada para otimizar a composição de carteiras de investimento minimizando o risco e maximizando o retorno.
  5. Física e Química:
    • Mecânica Quântica: Operadores lineares e vetores de estado são conceitos-chave na formulação matemática da mecânica quântica.
    • Dinâmica de Sistemas: Sistemas físicos são frequentemente modelados usando equações diferenciais lineares que podem ser resolvidas com técnicas de álgebra linear.

Importância da Álgebra Linear

A álgebra linear fornece as ferramentas para modelar e resolver problemas complexos de maneira eficiente e precisa. Sua aplicação pervasiva em várias disciplinas a torna uma habilidade essencial para cientistas, engenheiros, analistas de dados e muitos outros profissionais. Compreender e aplicar conceitos de álgebra linear é fundamental para inovar e resolver problemas em um mundo cada vez mais orientado por dados e tecnologia.

import streamlit as st
import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt

st.title('Regressão Linear Simples')

# Função para gerar dados de exemplo
def generate_data(n_samples=100):
    np.random.seed(42)
    X = 2 * np.random.rand(n_samples, 1)
    y = 4 + 3 * X + np.random.randn(n_samples, 1)
    return X, y

# Gerar dados
X, y = generate_data()

# Exibir os dados em um gráfico
st.subheader('Dados de Treinamento')
fig, ax = plt.subplots()
ax.scatter(X, y, color='blue')
ax.set_xlabel('X')
ax.set_ylabel('y')
st.pyplot(fig)

# Treinar o modelo de regressão linear
model = LinearRegression()
model.fit(X, y)
y_pred = model.predict(X)

# Exibir a linha de regressão
st.subheader('Linha de Regressão')
fig, ax = plt.subplots()
ax.scatter(X, y, color='blue', label='Dados')
ax.plot(X, y_pred, color='red', linewidth=2, label='Linha de Regressão')
ax.set_xlabel('X')
ax.set_ylabel('y')
ax.legend()
st.pyplot(fig)

# Exibir os coeficientes
st.subheader('Coeficientes do Modelo')
st.write(f'Intercepto: {model.intercept_[0]}')
st.write(f'Coeficiente: {model.coef_[0][0]}')