Jump to content

Schelling Model, Machine Learning


Coletrane315

Recommended Posts

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.

begin1.png

end1.png

Edited by Coletrane315
Link to comment
Share on other sites

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 by Ghideon
more details
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.