Git Product home page Git Product logo

regression-ai-model-practice's Introduction

Regression-AI-Model-Practice

Nesse projeto eu finalmente utilizei uma IA treinada em Python, nesse caso eu adaptei e melhorei o código do projeto Regression-AI-Model, na qual apenas treina a IA e analisa sua taxa de acerto, porém ainda não é testado pelo usuário.

Sendo assim, nesse projeto atual é possível o usuário interagir com a IA.

Desafios

  • Entender a sintaxe do Python;
  • Utilizar as bibliotecas: pandas e sklearn;
  • Treinar IA, utilizando arquivos .csv;
  • Criação e testes da IA.

Aprendizados

Por final aprendi algumas coisas interessantes como:

Criando Data(Dados)

Nesse caso, eu estava querendo criar alguns valores x e y simples, apenas para entender como a IA funciona.

Então no caso abaixo, eu defini manualmente 3 funções que ao passar o X, resolveria o Y e printaria X e Y.

// Esse é o arquivo que usei para copiar os valores para as tabelas de dados.

const f1 = (x) => console.log(`${x},${x*2+1}`)

console.log("Function 1")
console.log("x,y")

for(let x = 1; x <= 10; x++){
    f1(x)
}

console.log("")

const f2 = (x) => console.log(`${x},${x*4+1}`)

console.log("Function 2")
console.log("x,y")

for(let x = 1; x <= 100; x++){
    f2(x)
}

console.log("")

const f3 = (x) => console.log(`${x},${(x*3)+(x/2)}`)

console.log("Function 3")
console.log("x,y")

for(let x = 1; x <= 1000; x++){
    f3(x)
}

IA

Loading Data

Nas linhas baixo eu peço para meu usuário escolher qual das tabelas de dados ele vai escolher, ao fazer isso será atribuido a variável df.

print()
dataType = ""
df = ""
while dataType != "1" and dataType != "2" and dataType != "3":
    dataType = input(f"Escolha uma opção: \n 1- Data1 \n 2- Data2 \n 3- Data3 \nR: ")
# Data 1;
if dataType == "1":
    df = pd.read_csv('https://raw.githubusercontent.com/Victor-Lis/Regression-AI-Model-Practice/master/data.csv')

# Data 2;
if dataType == "2":
    df = pd.read_csv('https://raw.githubusercontent.com/Victor-Lis/Regression-AI-Model-Practice/master/data2.csv')

# Data 3;
if dataType == "3":
    df = pd.read_csv('https://raw.githubusercontent.com/Victor-Lis/Regression-AI-Model-Practice/master/data3.csv')

Data Preparation

Nas tabelas "data", como são bem simples, tem apenas 2 colunas, X e Y. Sendo assim, fica bem auto-explicativo, y é igual a coluna y e x é igual ao restante das colunas, no caso só o x mesmo.

Caso queira entender melhor como funcionam X e Y, fiz um repositório apenas para explicar isso.

y = df["y"]

x = df.drop("y", axis=1)

Data Splitting

Nas linhas abaixo utizo a função train_test_split() para separar 80% dos dados para treino e 20% para teste.

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=100)

Linear Regression

Training the model

Nesse trecho eu utizo a função LinearRegression() para criar um modelo de regressão linear, então uso a funcão lr.fit() para treinar a IA utilizando os dados separados no bloco anterior.

lr = LinearRegression()
lr.fit(x_train, y_train)

Applying the model to make a prediction

Fazendo previsões utilizando os dados de treino e teste, após isso salvando os resultados, para depois avaliar a acurácia da IA.

y_lr_train_pred = lr.predict(x_train)
y_lr_test_pred = lr.predict(x_test)

Evaluate Model Performace

Nas linhas abaixo utilizo as funções mean_squared_error() e r2_score(), que expliquei melhor como funcionam no seguintes repositório AI-Data-Analysis

lr_train_mse = mean_squared_error(y_train, y_lr_train_pred)
lr_train_r2 = r2_score(y_train, y_lr_train_pred)

lr_test_mse = mean_squared_error(y_test, y_lr_test_pred)
lr_test_r2 = r2_score(y_test, y_lr_test_pred)

No restante desse bloco, utilizo a biblioteca "pandas" para trabalhar melhor a representação dos dados.

lr_results = pd.DataFrame(["Linear Regression", lr_train_mse, lr_train_r2, lr_test_mse, lr_test_r2]).transpose()
lr_results.columns = ['Method', 'Training MSE', 'Training R2', 'Test MSE', 'Test R2']
print()
print("Result Analysis")
print(lr_results)

Using

Predict Function

def predict():

    print()
    ### Getting number from user
    num = ""
    while num == "":
        num = input("Escreva um número: ")

    ### Convert the input number to a list with a single element
    new_data = pd.DataFrame([[float(num)]], columns=['x'])  # Assign the feature name 'x'

    ### Make a prediction using the trained model
    prediction = lr.predict(new_data)

    ### Print the prediction result
    print("Valor:", prediction[0])
    print()

    ### Restart
    restart = input("Recomeçar? y/n - ")
    if restart == "y":
        predict()

predict()

Screenshots

Escolhendo Data

Utilizando Data1

Utilizando Data2

Utilizando Data3

Autores

regression-ai-model-practice's People

Contributors

victor-lis avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.