Code Monkey home page Code Monkey logo

compintelligence_2022's Introduction

Ciao! πŸ‘‹

I am Francesco Capuano, Data Science and Engineering graduate at Politecnico di Torino & Politecnico di Milano, Italy's top engineering schools. Throughout my journey I focused on Deep Learning, with a particular interest on Deep Reinforcement Learning and Deep NLP.

πŸŽ“ Education

  • Bachelor: Engineering @ Sapienza University of Rome, Sep. 2018-July 2021 summa cum laude
  • Master of Science: Data Science and Engineering @ Politecnico di Torino, Sep. 2021-July 2023 summa cum laude
  • Alta Scuola Politecnica (Politecnico di Milano, Politecnico di Torino joint Honours Program), Feb. 2022-Feb. 2024

πŸš† Experience

  • πŸ‘¨β€πŸ’» CTO Associate @ Alan, April 2024-current
  • πŸ‘¨β€πŸ’» Machine Learning Engineer @ Founder's Studio, Bain & Co., May 2023-April 2024
  • πŸ€“ Research Intern @ ELI Beamlines & VANDAL Lab, Feb. 2023-May 2023
  • πŸ‘¨β€πŸ’» ML Engineering Intern @ ELI Beamlines, July 2022-Oct. 2022
  • πŸ‘¨β€πŸ’» Software Engineering Intern @ NTSG, July 2021
  • 🀡 A whole lot of waiting tables during Uni, 2017-2021. Be nice with servers!

πŸ“« Get in touch

  • LinkedIn
  • fc [dot] francescocapuano [at] gmail [dot] com

🧠 About me

  • 🎞️ Favourite book: The Count of Monte Cristo, A. Dumas.
  • πŸ‹πŸΌ I have practiced almost every sport and eventually got stuck on BJJ's mats (πŸŸ¦β¬›πŸŸ¦ since Nov 2023)
  • πŸ“š I love science.
  • πŸŽ‚ I was born in Rome, Italy, 23/04/2000.
  • β™ŸοΈ I am a chess player.

Enjoy my repositories! πŸš€

compintelligence_2022's People

Contributors

fracapuano avatar

Stargazers

 avatar  avatar

Watchers

 avatar

compintelligence_2022's Issues

Peer review for Lab 1

I checked the solution on my machine and it works, the results are consistent with those on README.md. The code runs very fast, in a matter of a few seconds, finding solutions up to size 1000. That is very impressive, so congrats :)

Your program uses an object oriented approach and defines many class properties, among which operators, which makes your objects very complete and organic. Exceptions are also raised in case of wrong usage, which is always nice.

All methods in the code are very well documented, following a specific format for usage, and the explanations are clear.

The code looks correct, with no redundant variables and no unnecessary loops, and it reads clearly. I couldn’t find any issues with it.
Just one small thing I noticed: in the heuristic method of class SolvedProblem you use your flatten method on the state, however you don’t actually use that for calculations. It might be part of an unused piece of code, but I thought I’d bring it to your attention.

All in all, great solution! I’m looking forward to seeing your implementations of other priority functions and see how they compare to this one in terms of performance.

Lab 2: Set Covering with GA Algorithm- Peer Review by Marco PratticΓ² (s294815)

Lab 2: Set Covering with GA Algorithm- Peer Review by Marco PratticΓ² (s294815)

Hi, I am Marco PratticΓ² (s294815) and this is my Peer Review.

Overview

The code is well-written and well-organized. I appreciate the use of classes with exhaustive comments and docs. The plots reported are really useful for seeing when the algorithm saturates.

Issues

  • In this algorithm, you are accepting non-valid solutions when generating the offspring. The evaluation of non-valid solutions occurs similarly to the valid ones. I think (I tested it but I am not 100% sure) that the algorithm can get stuck on a non-valid candidate with a better fitness value, instead of accepting a valid solution. For example with N = 3, we suppose we I have two candidates: [[1], [2]] and [[1,2,3]] that we call respectively candidate1 and candidate2. We can compute their fitness, according to your definition, using w_coverage * covering_fitness + w_reps * reps_fitness) - w_reps with w_coverage = 0.2 and w_reps = -0.8 (without considering the normalization). For candidate1 we obtain 0.2x2 - 0.8x2 - (-0.8) = -0.4, while for candidate2 we obtain 0.2x3 - 0.8x3 - (-0.8) = -1. Since you are using a sorting function with reverse = True, in the first position of the sorted list we will find candidate1. So, doing fittest.append(self.population[0] - as in your code - you will consider a non-valid solution, instead of considering the optimal solution.

  • A problem related to the previous point is that there is the possibility to find a non-valid solution and discarding other valid solutions. For example, for N = 20 and n_generations = 10 you will provide a non-valid solution at the end, while other valid solutions are discarded (I checked this part).

Suggestions

To solve this issue you can act in two ways:

  • accepting just the valid offspring, but there is the possibility that you discard almost optimal solutions.
  • accepting the non-valid offspring and adding a penalty to them. Please pay attention that acceptance with penalties reduces the risk of this issue but doesn't completely avoid it (I think).

From the graph, we can note that after a certain number of generations the algorithm saturates. The number of "useful" generations changes accordingly with the size of the problem. You can create - empirically - a mathematical function $N_{Gen} = f(N)$ to set the right number of "useful" generations.

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.