ML Lab P-1
ML Lab P-1
......................................................................................................
#Implement and demonstrate the FIND-Salgorithm
import pandas as pd
def load_data(filename):
"""Load dataset from a CSV file."""
return pd.read_csv(filename)
def find_s_algorithm(data):
"""Implements the Find-S algorithm for learning the most specific hypothesis."""
# Extract attributes and target column
attributes = data.iloc[:, :-1].values # All columns except last
target = data.iloc[:, -1].values # Last column (Yes/No)
return hypothesis
if __name__ == "__main__":
# Load dataset
filename = r"C:\Users\rahul\OneDrive\Desktop\mldata\training_data.csv" # Change
filename as needed
data = load_data(filename)
2...................................................................................
....................................................................................
import pandas as pd
import numpy as np
def load_data(filename):
"""Load training data from a CSV file."""
data = pd.read_csv(r'C:\Users\rahul\OneDrive\Desktop\mldata\training_data.csv')
return data
def candidate_elimination(data):
"""Implements the Candidate-Elimination Algorithm."""
attributes = data.columns[:-1] # Exclude target column
target = data.columns[-1] # Target column
# Generalize S if necessary
for j in range(len(S)):
if S[j] == 'ϕ': # Initialize S with first positive example
S = instance.copy()
elif S[j] != instance[j]:
S[j] = '?' # Generalize S
return S, G
if __name__ == "__main__":
filename = "training_data.csv" # Replace with actual CSV filename
data = load_data(filename)
S_final, G_final = candidate_elimination(data)
print("Final Specific Hypothesis:", S_final)
print("Final General Hypotheses:", G_final)
3..................................................................................
....................................................................................
#Write a program to demonstrate the working of the decision tree based ID3 algorithm. Use
an appropriate data set for building the decision tree and apply this knowledge toclassify a
new sample
import numpy as np
import pandas as pd
from collections import Counter
return tree
4........................................................................................................
.........................................................................................................
import numpy as np
def sigmoid_derivative(x):
return x * (1 - x)
np.random.seed(42)
weights_input_hidden = np.random.uniform(size=(input_layer_neurons, hidden_layer_neurons))
weights_hidden_output = np.random.uniform(size=(hidden_layer_neurons,
output_layer_neurons))
bias_hidden = np.random.uniform(size=(1, hidden_layer_neurons))
bias_output = np.random.uniform(size=(1, output_layer_neurons))
# Backpropagation
error = y - predicted_output
d_predicted_output = error * sigmoid_derivative(predicted_output)
error_hidden_layer = d_predicted_output.dot(weights_hidden_output.T)
d_hidden_layer = error_hidden_layer * sigmoid_derivative(hidden_layer_output)
# Test samples
test_samples = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
predictions = predict(test_samples)
print("Predictions:")
print(predictions)
5.....................................................................................................
........................................................................................................
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score
if __name__ == "__main__":
main()
6...............................................................................
.................................................................................
import java.io.*;
import java.util.*;
import weka.classifiers.bayes.NaiveBayes;
import weka.core.Instance;
import weka.core.Instances;
import weka.core.converters.ConverterUtils.DataSource;
import weka.classifiers.Evaluation;
// Split dataset into training and testing sets (80% train, 20% test)
int trainSize = (int) Math.round(dataset.numInstances() * 0.8);
int testSize = dataset.numInstances() - trainSize;
Instances trainSet = new Instances(dataset, 0, trainSize);
Instances testSet = new Instances(dataset, trainSize, testSize);
7.....................................................................................
......................................................................................
import pandas as pd
from pgmpy.models import BayesianModel
from pgmpy.estimators import MaximumLikelihoodEstimator
from pgmpy.inference import VariableElimination
# Perform inference
inference = VariableElimination(model)
8...........................................................................................
............................................................................................
import pandas as pd
import numpy as np
from sklearn.mixture import GaussianMixture
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score
from sklearn.preprocessing import StandardScaler
# Main function
def main():
filename = 'dataset.csv' # Change this to your dataset file
data = load_data(filename)
# Apply EM clustering
em_labels = em_clustering(data_scaled, n_clusters)
if __name__ == "__main__":
main()
9...................................................................
....................................................................
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
# Make predictions
y_pred = knn.predict(X_test)
# Evaluate accuracy
accuracy = accuracy_score(y_test, y_pred)
print(f'Accuracy: {accuracy * 100:.2f}%')
print("\nCorrect Predictions:")
for item in correct:
print(f'Predicted: {item[1]}')
print("\nIncorrect Predictions:")
for item in incorrect:
print(f'Predicted: {item[1]}, Actual: {item[2]}')
10..............................................................................................
................................................................................................
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
# Plot results
plt.scatter(X[:, 1], y, label='Data', color='blue', alpha=0.5)
plt.scatter(X_test[:, 1], y_pred, label='Predictions', color='red', marker='x')
plt.xlabel('X')
plt.ylabel('y')
plt.legend()
plt.title('Locally Weighted Regression')
plt.show()