Thursday, September 30, 2021

Random walks in Python

 

Random Walks in Python using Matplotlib

In this blog, we’ll use Python to generate data for a random walk, and then use Matplotlib to create a visual representation of that data. A random walk is a path that has no clear direction but is determined by a series of random decisions, each of which is left entirely to chance. Take for example the path a confused ant would take if it took every step in a random direction. Random walk models are used in many real-world situations. Here is a real-world application of random walks.

Importing the modules

For this, we require two modules; Matplotlib and Random

import matplotlib.pyplot as plt

from random import choice

To make random decisions, we’ll store possible moves in a list and use the choice() function, from the random module, to decide which move to make each time a step is taken. Hence the random module.

 The RandomWalk() Function

def RandomWalk(num_points):

    x_values = [0]

    y_values = [0]

When calling the function, we will require to pass in the number of points that the random walk will make. Then, we make two lists to hold the x- and y-values, and we start each walk at the point (0, 0).

def RandomWalk(num_points):

    x_values = [0]

    y_values = [0]

 

    """Keep taking steps until the walk reaches 

the desired length."""

    while len(x_values) < num_points:

 

        """Decide which direction to go and how far 

to go in that direction."""

        x_direction = choice([1-1])

        x_distance = choice([01234])

        x_step = x_direction * x_distance

 

        y_direction = choice([1-1])

        y_distance = choice([0,1,2,3,4])

        y_step = y_direction * y_distance

 

        """Reject a move that goes no-where"""

        if x_step == 0 and y_step == 0:

                continue

 

        x = x_values[-1+ x_step

        y = y_values[-1+ y_step

 

        x_values.append(x)

        y_values.append(y)

 

Next, we set up a loop that runs until the walk is filled with the correct number of points. The main part of the loop tells Python how to simulate four random decisions: will the walk go right or left? How far will it go in that direction? Will it go up or down? How far will it go in that direction? We use choice([1, -1]) to choose a value for x_direction, which returns either 1 for right movement or −1 for left. Next, choice([0, 1, 2, 3, 4]) tells Python how far to move in that direction (x_distance) by randomly selecting an integer between 0 and 4. (The inclusion of a 0 allows us to take steps along the y-axis as well as steps that have moved along both axes.). We need to determine the length of each step in the x and y directions by multiplying the direction of movement by the distance chosen. A positive result for x_step means move right, a negative result means move left, and 0 means move vertically. A positive result for y_step means move up, negative means move down, and 0 means move horizontally. If the value of both x_step and y_step is 0, the walk doesn’t go anywhere, so we continue the loop to ignore this move. To get the next x-value for the walk, we add the value in x_step to the last value stored in x_values and do the same for the y-values. When we have these values, we append them to x_values and y_values.

     x_values.append(x)

     y_values.append(y)

 

    """plot the points in the walk"""

    plt.style.use("classic")

    fig, ax = plt.subplots(figsize=(15,9))

    point_numbers = range(num_points)

    ax.scatter(x_values, y_values, c=point_numbers,

 cmap=plt.cm.Blues, edgecolors       ='none's=15)

    

    """Emphasize the first and last points"""

    ax.scatter(0,0c='green'edgecolors='none's=100)

    ax.scatter(x_values[-1], y_values[-1], c='red'

edgecolors='none's=100)

 

    ax.get_xaxis().set_visible(False)

    ax.get_yaxis().set_visible(False)

 

    plt.show()

We proceed to create a scatter plot using Matplotlib. First, is to specify the style that we will use. The variable fig represents the entire figure or collection of plots that are generated. The variable ax represents a single plot in the figure and is the variable used most of the time. In the ax.scatter function we pass the x and y values to be plotted. We also pass the color maps. Pyplot module includes a set of built-in color maps. To use one of these cmaps, you need to specify how Pyplot should assign a color to each point in the data set. Here is how to assign each point a color based on its y-value.

ax.scatter(x_values, y_values, c=point_numbers, 

cmap=plt.cm.Blues, edgecolors='none's=15)

Pass a list of y-values to c, and then tell pyplot which color map to use using the color map argument. This code colors the points with lower y-values light blue and colors the points with higher y-values dark blue. We also emphasize the starting points and ending points of our plot. Using green for beginning and red for the end of the walk.

RandomWalk(5000)

Finally, we call the function with the number of points we desire to be scattered on our random walk.




 


Labels: , , , , , , , , , , , , , , , ,

Wednesday, September 29, 2021

Web 3.0

 


What is web 3.0?

TechTarget defines web 3.0 as the third generation of internet services for websites and applications that will focus on using a machine-based understanding of data to provide a data-driven and Semantic Web; the ultimate goal of web 3.0 is to create more intelligent, connected and open websites.

But before we talk about web 3.0 further, let's look at the other web technologies.

Web 1.0

This is the first stage of the World Wide Web revolution (WWW) and is also referred to as read-only web. The web began as an informational place for people to broadcast their information and only allowed users to search for information and read it. There are no advertisements while surfing on the web and is mainly used for personal websites. It has static web pages and uses basic Hypertext Mark-Up Language

Web 2.0

This is basically the social web. It contains tools and platforms for people to share their perspectives, opinions, thoughts and experiences. Web 2.0 applications tend to be more interactive with the end-user. “Web 2.0 is the business revolution in the computer industry caused by the move to the internet as a platform, and any attempt to understand the rules for success on that new platform.”– Tim O’Reilly.


Web 3.0 is characterised by some exiting features; 

Semantic Web

The next evolution of the Internet involves the semantic web. The Semantic Web will improve web technologies to generate, share and combine content through search and analysis based on the ability to understand the meaning of words, not keywords or figures.

Artificial Intelligence

By combining this capability with natural language processing computers will understand information just like humans, delivering faster and more relevant results. They are getting smarter to meet the wants of their users.

3D Graphics
More information connection
Ubiquity - Content is accessible by multiple applications

There is no clear definition or unique explanation of web 3.0. I think to really understand what it is we will have to wait a while longer. Then, we shall be able to compare it with web 1.0 and web 2.0 and see the notable differences.

Labels: , , , , , , , , , , , , , , ,

Thursday, September 23, 2021

Pitching my Start-up idea

 Statistics Student Pitches his Start-Up Idea

The Pitch 

This is the most important aspect of your Start-Up. No matter how great your idea is, if you can't convey it and you don't have enough capital, then your start-up is useless. And if you can't inspire people and you don't have a team working for you then your start-up is useless. But wait what if I can make a product that doesn't require much capital and I don't need a team - I could do it by myself? Well, I mean if you can't convey your idea to customers then you are not gonna have any customers and if you don't have any customers then your Start-up is useless. In every interaction relating to your Start-Up, you will somehow require to pitch it. That is why it is essential to perfect your pitch.

Easier said than done, here are 7 questions that you should answer as clearly as possible.

1. What do you do?

- Be as clear as possible, no fluff no bs. To test it, the text test. Write two sentences regarding your start-up in a text and send it to a friend and ask them to explain it to you in their own words. If they can do that then you are golden.

2. How big is the market?

Investors care about Return On Investment (ROI). If there is no market for your product then their investment is not worth it. Don't make your target market too wide or too narrow. Make it correct. You are only wasting up people's time if you are making up numbers.

3. What's your progress?

You want to make sure that you are doing something, what is possible in a given time frame? What can you do?

4. What is your unique insight?

What is your competitive advantage? How are you different from the start-up next door? What makes you more likely to succeed in your market?

5. What's your business model? 

How are you going to make money? Are you the grow fast think about money later kind of company or will you be making money right away? It's always better to have a plan of attack when it comes to monetization.

6. Who is on your team?

What are your credentials? Who is technical, who is not? Who is doing what? Is everyone useful? Are you as lean as possible?

7. What do you want?

This could be capital, convincing someone to work for you, or simply telling your mom that you are actually doing something and you are not wasting her life savings on your pet projects and that this time it's going to blow up for sure. 

With this in mind, you will be able to do a good pitch



Labels: , , , ,