Supervised learning means that the AI learns using examples that already have the correct answers, just like how a student learns from a teacher. In this method, the computer is given input data (like pictures, numbers, or text) along with the correct output or label (the answer). For example, if we give an AI many pictures of fruits labeled as “apple,” “mango,” and “banana,” it studies these examples to understand the patterns, colors, and shapes that make each fruit different. Later, when the AI sees a new fruit picture, it can guess what it is based on what it learned earlier. Supervised learning is used in many real-life applications, such as email spam detection, voice recognition, and medical image analysis, where the computer learns from known data to make accurate predictions in the future. It has 2 parts.
Classification is a type of learning in AI where the computer learns how to organize or sort data into different groups or categories. The AI looks at examples and then figures out which category new information belongs to. For example, if we show an AI lots of pictures of animals, it can learn to tell the difference between a cat and a dog. Over time, the more pictures it sees, the better it becomes at recognizing them. Classification can be used for many things, like identifying fruits, sorting emails into “spam” or “not spam,” or even recognizing handwritten numbers. It helps computers make decisions based on patterns in the data they have seen.
import matplotlib.pyplot as plt
# Your dataset
data_raw = [
[34.62365962451697,78.0246928153624,0],
[30.28671076822607,43.89499752400101,0],
[35.84740876993872,72.90219802708364,0],
[60.18259938620976,86.30855209546826,1],
[79.0327360507101,75.3443764369103,1],
[45.08327747668339,56.3163717815305,0],
[61.10666453684766,96.51142588489624,1],
[75.02474556738889,46.55401354116538,1],
[76.09878670226257,87.42056971926803,1],
[84.43281996120035,43.53339331072109,1],
[95.86155507093572,38.22527805795094,0],
[75.01365838958247,30.60326323428011,0],
[82.30705337399482,76.48196330235604,1],
[69.36458875970939,97.71869196188608,1],
[39.53833914367223,76.03681085115882,0],
[53.9710521485623,89.20735013750205,1],
[69.07014406283025,52.74046973016765,1],
[67.94685547711617,46.67857410673128,0],
[70.66150955499435,92.92713789364831,1],
[76.97878372747498,47.57596364975532,1],
[67.37202754570876,42.83843832029179,0],
[89.67677575072079,65.79936592745237,1],
[50.534788289883,48.85581152764205,0],
[34.21206097786789,44.20952859866288,0],
[77.9240914545704,68.9723599933059,1],
[62.27101367004632,69.95445795447587,1],
[80.1901807509566,44.82162893218353,1],
[93.114388797442,38.80067033713209,0],
[61.83020602312595,50.25610789244621,0],
[38.78580379679423,64.99568095539578,0],
[61.379289447425,72.80788731317097,1],
[85.40451939411645,57.05198397627122,1],
[52.10797973193984,63.12762376881715,0],
[52.04540476831827,69.43286012045222,1],
[40.23689373545111,71.16774802184875,0],
[54.63510555424817,52.21388588061123,0],
[33.91550010906887,98.86943574220611,0],
[64.17698887494485,80.90806058670817,1],
[74.78925295941542,41.57341522824434,0],
[34.1836400264419,75.2377203360134,0],
[83.90239366249155,56.30804621605327,1],
[51.54772026906181,46.85629026349976,0],
[94.44336776917852,65.56892160559052,1],
[82.36875375713919,40.61825515970618,0],
[51.04775177128865,45.82270145776001,0],
[62.22267576120188,52.06099194836679,0],
[77.19303492601364,70.45820000180959,1],
[97.77159928000232,86.7278223300282,1],
[62.07306379667647,96.76882412413983,1],
[91.56497449807442,88.69629254546599,1],
[79.94481794066932,74.16311935043758,1],
[99.2725269292572,60.99903099844988,1],
[90.54671411399852,43.39060180650027,1],
[34.52451385320009,60.39634245837173,0],
[50.2864961189907,49.80453881323059,0],
[49.58667721632031,59.80895099453265,0],
[97.64563396007767,68.86157272420604,1],
[32.57720016809309,95.59854761387875,0],
[74.24869136721598,69.82457122657193,1],
[71.79646205863379,78.45356224515052,1],
[75.3956114656803,85.75993667331619,1],
[35.28611281526193,47.02051394723416,0],
[56.25381749711624,39.26147251058019,0],
[30.05882244669796,49.59297386723685,0],
[44.66826172480893,66.45008614558913,0],
[66.56089447242954,41.09209807936973,0],
[40.45755098375164,97.53518548909936,1],
[49.07256321908844,51.88321182073966,0],
[80.27957401466998,92.11606081344084,1],
[66.74671856944039,60.99139402740988,1],
[32.72283304060323,43.30717306430063,0],
[64.0393204150601,78.03168802018232,1],
[72.34649422579923,96.22759296761404,1],
[60.45788573918959,73.09499809758037,1],
[58.84095621726802,75.85844831279042,1],
[99.82785779692128,72.36925193383885,1],
[47.26426910848174,88.47586499559782,1],
[50.45815980285988,75.80985952982456,1],
[60.45555629271532,42.50840943572217,0],
[82.22666157785568,42.71987853716458,0],
[88.9138964166533,69.80378889835472,1],
[94.83450672430196,45.69430680250754,1],
[67.31925746917527,66.58935317747915,1],
[57.23870631569862,59.51428198012956,1],
[80.36675600171273,90.96014789746954,1],
[68.46852178591112,85.59430710452014,1],
[42.0754545384731,78.84478600148043,0],
[75.47770200533905,90.42453899753964,1],
[78.63542434898018,96.64742716885644,1],
[52.34800398794107,60.76950525602592,0],
[94.09433112516793,77.15910509073893,1],
[90.44855097096364,87.50879176484702,1],
[55.48216114069585,35.57070347228866,0],
[74.49269241843041,84.84513684930135,1],
[89.84580670720979,45.35828361091658,1],
[83.48916274498238,48.38028579728175,1],
[42.2617008099817,87.10385094025457,1],
[99.31500880510394,68.77540947206617,1],
[55.34001756003703,64.9319380069486,1],
[74.77589300092767,89.52981289513276,1]
]
# Separate features and labels
X1 = [x[0] for x in data_raw]
X2 = [x[1] for x in data_raw]
y = [x[2] for x in data_raw]
# Separate points by label (0 or 1)
x1_class0 = [X1[i] for i in range(len(y)) if y[i] == 0]
x2_class0 = [X2[i] for i in range(len(y)) if y[i] == 0]
x1_class1 = [X1[i] for i in range(len(y)) if y[i] == 1]
x2_class1 = [X2[i] for i in range(len(y)) if y[i] == 1]
# Plot
plt.figure(figsize=(8,6))
plt.scatter(x1_class0, x2_class0, color='red', label='Not admitted')
plt.scatter(x1_class1, x2_class1, color='blue', label='Admitted')
plt.title("Data Visualization")
plt.xlabel("Feature 1")
plt.ylabel("Feature 2")
plt.legend()
plt.grid(True)
plt.show()
Regression is a type of learning in AI where the computer learns how to predict numbers instead of sorting things into groups. The AI looks at patterns in the data it has seen and then uses those patterns to make a guess about a new number. For example, if we give an AI information about a house, like its size, number of bedrooms, and location, it can try to predict the price of that house. Similarly, it can look at past weather data and try to guess what tomorrow’s temperature will be. Regression is helpful in many areas where we need to estimate or predict numbers, such as sales forecasts, student scores, or even the speed of a car.
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
import numpy as np
# Prepare data for polynomial regression
ages = combined_population_2019.column('AGE').reshape(-1, 1)
total_population = combined_population_2019.column('Total 2019')
# Generate polynomial features (degree 10)
poly_features = PolynomialFeatures(degree=10)
ages_poly = poly_features.fit_transform(ages)
# Perform linear regression with polynomial features
model = LinearRegression()
model.fit(ages_poly, total_population)
# Generate predicted values across the age range
ages_for_prediction = np.linspace(ages.min(), ages.max(), 100).reshape(-1, 1)
ages_for_prediction_poly = poly_features.transform(ages_for_prediction)
predicted_population_poly = model.predict(ages_for_prediction_poly)
# Plot the original data and the polynomial regression curve
combined_population_2019.plot('AGE')
plt.plot(ages_for_prediction, predicted_population_poly, color='red', label=f'Polynomial Regression (Degree 10)')
plt.xlabel('Age')
plt.ylabel('Population (2019)')
plt.title('Population vs Age with Polynomial Regression')
plt.legend()
plt.show()