Coletrane315 Posted August 25, 2020 Posted August 25, 2020 (edited) Hey everyone, I'm brand new to posting to forums, but it seems appropriate for a project I am working on. For those of you who don't know what the Schelling Model is, I will give a brief explanation. In the 1960s, a man named Thomas Schelling developed a model to predict how people would move to a new house based on having neighbors of different race, ethnicity, or socioeconomic status. In the case of my program, I have a grid of squares, I'll use 8x8 as an example. There are 23 black circles and 24 red circles that are randomly placed in a square. Then a random circle is selected, if there are a certain amount (usually 1) of differently colored circles in the 8 squares surrounding, the circle will move to a new square. Originally, I had it set to choose a random new square to move to, but if I made a circle move if it had one different neighbor, the program never ended, it's just pure randomness if it ends. So, I programmed it to find a random square that it wouldn't have to move a second time. When I tried this, there were points where there were no squares empty that met the no differently colored neighbor condition, so the program would go idle. So if there are no empty squares for a circle to go to with no opposite neighbors, then it moves to a random square. Generally, it takes anywhere from 10-80 seconds to complete one loop of this program. Then, I put the whole thing in a loop and saved pictures of the state of the board before it started and after it finished. I know very little about machine learning, but from my little knowledge, I know what I am thinking is possible, I just don't know how. What I want to do is feed a machine learning algorithm either a bunch of pictures before and after the program runs, or coordinates (maybe row and column numbers of the grid instead of graphic coordinates?) of all the circles before and after the program runs for the input, and have it output a prediction for what the board would look like. I am curious how accurate the machine learning algorithm could be, considering the board state is based on pseudo-based numbers. As I said, I know very little about machine learning, I am in my first year of college as a computer science major. I don't necessarily need a direct explanation, anything to research to figure out on my own would be useful as well. I will post pictures of my program, the board state before and after the program runs for a visual. Any help would be appreciated. Edited August 25, 2020 by Coletrane315
Ghideon Posted August 25, 2020 Posted August 25, 2020 (edited) 12 hours ago, Coletrane315 said: Hey everyone, Hello. Welcome to the forum. 12 hours ago, Coletrane315 said: I know very little about machine learning, but from my little knowledge, I know what I am thinking is possible, I just don't know how. What I want to do is feed a machine learning algorithm either a bunch of pictures before and after the program runs, or coordinates (maybe row and column numbers of the grid instead of graphic coordinates?) of all the circles before and after the program runs for the input, and have it output a prediction for what the board would look like. I am curious how accurate the machine learning algorithm could be, considering the board state is based on pseudo-based numbers. As I said, I know very little about machine learning, I am in my first year of college as a computer science major. I don't necessarily need a direct explanation, anything to research to figure out on my own would be useful as well. I will post pictures of my program, the board state before and after the program runs for a visual. Any help would be appreciated. First: I would instinctively claim that a machine learning model will not perform good at predicting the final picture if the final picture could be any random picture where red and black dots are separated. A few questions and ideas to get the discussion going. I'll start form a general overview level, we can get into more details later if you wish. I think we need a little more info about the model you wish to create. Example: If you feed "before" and "after" pictures, how would you like to distinguish a correct prediction from an incorrect one?. For instance in your example the red group has moved to the lower right corner. If the red group had moved into top left instead, would that indicate a failure or an alternative outcome? Due to the randomness involved in the movements; if you run your program several times with identical input, how large are the deviations in the resulting output pictures? The resulting model could be different if you -Want to predict how your implementation of the separation for a specific input looks -Want to predict a possible outcome in general. -Want to teach the model to perform the separation -Want to binary classify "before" and "after" pictures -Other The above questions may help with a clearer definition of the goal. Feel free to ask for clarifications or additional info. Edited August 25, 2020 by Ghideon more details
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now