JustPaste
HomeCategoriesAboutDonateContactTerms of UsePrivacy Policy
JustPaste

Free online notepad — write and share instantly

Navigate

  • Home
  • Timeline
  • Categories

Info

  • About
  • Donate
  • Contact

Legal

  • Terms of Use
  • Privacy Policy

© 2026 JustPaste.app. All rights reserved.

Made with ♥ by JustPaste

Untitled Page | JustPaste.app
1 day ago3 views
👨‍💻Programming

Untitled Page

import matplotlib.pyplot as plt

from sklearn.model_selection import train_test_split from sklearn.linear_model import Perceptron

from sklearn.metrics import accuracy_score

# Read dataset

data = pd.read_csv(r"E:\Kiran\DSI\ML and NN\Lab\Program 9\student_perceptron_2D.csv")

print("First 5 Records:")

print(data.head())

# Separate input and output

X = data[["Study_Hours", "Assignment_Score"]]

y = data["Result"]

# Split data

X_train, X_test, y_train, y_test = train_test_split(

X, y,

test_size=0.30,

random_state=42,

stratify=y

)

print("\nTraining Samples:", len(X_train))

print("Testing Samples:", len(X_test))

# Create Perceptron

model = Perceptron(

max_iter=1000,

eta0=0.01,

random_state=42

)

# Train

model.fit(X_train, y_train)

# Predict test data

y_pred = model.predict(X_test)

print("\nTest Data Predictions:")

print(y_pred)

# Accuracy

accuracy = accuracy_score(y_test, y_pred)

print("\nTesting Accuracy:", accuracy) # Weights and bias

w1 = model.coef_[0][0]

w2 = model.coef_[0][1]

b = model.intercept_[0]

print("\nWeights:", model.coef_)

print("Bias:", model.intercept_)

# Decision boundary

x1 = np.linspace(

X["Study_Hours"].min(),

X["Study_Hours"].max(),

100

)

x2 = -(w1 * x1 + b) / w2

# Plot data

plt.scatter(

X[y == 0]["Study_Hours"],

X[y == 0]["Assignment_Score"],

marker="o",

label="Fail"

)

plt.scatter(

X[y == 1]["Study_Hours"],

X[y == 1]["Assignment_Score"],

marker="s",

label="Pass"

)

# Plot decision boundary

plt.plot(

x1,

x2,

label="Decision Boundary"

)

plt.xlabel("Study Hours")

plt.ylabel("Assignment Score")

plt.title("Single-Layer Perceptron Decision Boundary")

plt.legend()

plt.grid(True)

plt.show()

← Back to timeline