{"id":15832007,"url":"https://github.com/victor-lis/regression-ai-model-practice","last_synced_at":"2025-04-01T12:09:45.160Z","repository":{"id":215221023,"uuid":"738355029","full_name":"Victor-Lis/Regression-AI-Model-Practice","owner":"Victor-Lis","description":null,"archived":false,"fork":false,"pushed_at":"2024-01-03T23:08:35.000Z","size":198,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-05T12:41:02.992Z","etag":null,"topics":["ai","data-analysis","python","regression-model"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Victor-Lis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-03T03:18:15.000Z","updated_at":"2024-02-19T01:01:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"5949848c-f6d0-4098-8370-266fd69a36c9","html_url":"https://github.com/Victor-Lis/Regression-AI-Model-Practice","commit_stats":null,"previous_names":["victor-lis/regression-ai-model-practice"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Victor-Lis%2FRegression-AI-Model-Practice","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Victor-Lis%2FRegression-AI-Model-Practice/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Victor-Lis%2FRegression-AI-Model-Practice/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Victor-Lis%2FRegression-AI-Model-Practice/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Victor-Lis","download_url":"https://codeload.github.com/Victor-Lis/Regression-AI-Model-Practice/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246635983,"owners_count":20809333,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","data-analysis","python","regression-model"],"created_at":"2024-10-05T12:40:22.821Z","updated_at":"2025-04-01T12:09:45.121Z","avatar_url":"https://github.com/Victor-Lis.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Regression-AI-Model-Practice\n\nNesse projeto eu finalmente utilizei uma IA treinada em Python, nesse caso eu adaptei e melhorei o [código](https://github.com/Victor-Lis/Regression-AI-Model) 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.\n\nSendo assim, nesse projeto atual é possível o usuário interagir com a IA.\n# Desafios\n\n- Entender a sintaxe do Python;\n- Utilizar as bibliotecas: [pandas](https://pandas.pydata.org/docs/user_guide/index.html) e [sklearn](https://scikit-learn.org/stable/user_guide.html);\n- Treinar IA, utilizando arquivos .csv;\n- Criação e testes da IA.\n  \n# Aprendizados\nPor final aprendi algumas coisas interessantes como: \n\n# Criando Data(Dados)\nNesse caso, eu estava querendo criar alguns valores x e y simples, apenas para entender como a IA funciona.\n\nEntão no caso abaixo, eu defini manualmente 3 funções que ao passar o X, resolveria o Y e printaria X e Y.\n```python\n// Esse é o arquivo que usei para copiar os valores para as tabelas de dados.\n\nconst f1 = (x) =\u003e console.log(`${x},${x*2+1}`)\n\nconsole.log(\"Function 1\")\nconsole.log(\"x,y\")\n\nfor(let x = 1; x \u003c= 10; x++){\n    f1(x)\n}\n\nconsole.log(\"\")\n\nconst f2 = (x) =\u003e console.log(`${x},${x*4+1}`)\n\nconsole.log(\"Function 2\")\nconsole.log(\"x,y\")\n\nfor(let x = 1; x \u003c= 100; x++){\n    f2(x)\n}\n\nconsole.log(\"\")\n\nconst f3 = (x) =\u003e console.log(`${x},${(x*3)+(x/2)}`)\n\nconsole.log(\"Function 3\")\nconsole.log(\"x,y\")\n\nfor(let x = 1; x \u003c= 1000; x++){\n    f3(x)\n}\n```\n\n# IA\n\n## Loading Data\nNas 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.\n```python\nprint()\ndataType = \"\"\ndf = \"\"\nwhile dataType != \"1\" and dataType != \"2\" and dataType != \"3\":\n    dataType = input(f\"Escolha uma opção: \\n 1- Data1 \\n 2- Data2 \\n 3- Data3 \\nR: \")\n# Data 1;\nif dataType == \"1\":\n    df = pd.read_csv('https://raw.githubusercontent.com/Victor-Lis/Regression-AI-Model-Practice/master/data.csv')\n\n# Data 2;\nif dataType == \"2\":\n    df = pd.read_csv('https://raw.githubusercontent.com/Victor-Lis/Regression-AI-Model-Practice/master/data2.csv')\n\n# Data 3;\nif dataType == \"3\":\n    df = pd.read_csv('https://raw.githubusercontent.com/Victor-Lis/Regression-AI-Model-Practice/master/data3.csv')\n```\n\n\n## Data Preparation \nNas 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. \n\nCaso queira entender melhor como funcionam X e Y, fiz um [repositório](https://github.com/Victor-Lis/AI-Data-Analysis) apenas para explicar isso.\n```python\ny = df[\"y\"]\n\nx = df.drop(\"y\", axis=1)\n```\n\n\n## Data Splitting\nNas linhas abaixo utizo a função train_test_split() para separar 80% dos dados para treino e 20% para teste.\n```python\nx_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=100)\n```\n\n## Linear Regression\n\n### Training the model\nNesse 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.\n```python\nlr = LinearRegression()\nlr.fit(x_train, y_train)\n```\n\n### Applying the model to make a prediction\nFazendo previsões utilizando os dados de treino e teste, após isso salvando os resultados, para depois avaliar a acurácia da IA. \n```python\ny_lr_train_pred = lr.predict(x_train)\ny_lr_test_pred = lr.predict(x_test)\n```\n\n### Evaluate Model Performace\nNas linhas abaixo utilizo as funções mean_squared_error() e r2_score(), que expliquei melhor como funcionam no seguintes repositório [AI-Data-Analysis](https://github.com/Victor-Lis/AI-Data-Analysis)\n```python\nlr_train_mse = mean_squared_error(y_train, y_lr_train_pred)\nlr_train_r2 = r2_score(y_train, y_lr_train_pred)\n\nlr_test_mse = mean_squared_error(y_test, y_lr_test_pred)\nlr_test_r2 = r2_score(y_test, y_lr_test_pred)\n```\nNo restante desse bloco, utilizo a biblioteca \"pandas\" para trabalhar melhor a representação dos dados.\n```python\nlr_results = pd.DataFrame([\"Linear Regression\", lr_train_mse, lr_train_r2, lr_test_mse, lr_test_r2]).transpose()\nlr_results.columns = ['Method', 'Training MSE', 'Training R2', 'Test MSE', 'Test R2']\nprint()\nprint(\"Result Analysis\")\nprint(lr_results)\n```\n\n## Using\n\n### Predict Function \n```python \ndef predict():\n\n    print()\n    ### Getting number from user\n    num = \"\"\n    while num == \"\":\n        num = input(\"Escreva um número: \")\n\n    ### Convert the input number to a list with a single element\n    new_data = pd.DataFrame([[float(num)]], columns=['x'])  # Assign the feature name 'x'\n\n    ### Make a prediction using the trained model\n    prediction = lr.predict(new_data)\n\n    ### Print the prediction result\n    print(\"Valor:\", prediction[0])\n    print()\n\n    ### Restart\n    restart = input(\"Recomeçar? y/n - \")\n    if restart == \"y\":\n        predict()\n\npredict()\n```\n### Screenshots\n\n![Escolhendo Data](https://github.com/Victor-Lis/Regression-AI-Model-Practice/blob/master/images/Escolhendo-Data.png)\n\n![Utilizando Data1](https://github.com/Victor-Lis/Regression-AI-Model-Practice/blob/master/images/Testando%20IA%20-%20Data1.jpg)\n\n![Utilizando Data2](https://github.com/Victor-Lis/Regression-AI-Model-Practice/blob/master/images/Testando%20IA%20-%20Data2.jpg)\n\n![Utilizando Data3](https://github.com/Victor-Lis/Regression-AI-Model-Practice/blob/master/images/Testando%20IA%20-%20Data3.jpg)\n\n## Autores\n\n- [@Victor-Lis](https://github.com/Victor-Lis)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvictor-lis%2Fregression-ai-model-practice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvictor-lis%2Fregression-ai-model-practice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvictor-lis%2Fregression-ai-model-practice/lists"}