1. Find-S Algorithm import pandas as pd data = pd.read_csv("training-data.csv") X = data.iloc[:, :-1].values y = data.iloc[:, -1].values hypothesis = ["0"] * len(X[0]) for i in range(len(X)): if str(y[i]).lower() == "yes": for j in range(len(hypothesis)): if hypothesis[j] == "0": hypothesis[j] = X[i][j] elif hypothesis[j] != X[i][j]: hypothesis[j] = "?" print("Final Hypothesis:", hypothesis) # training-data.csv # Sky,Airtemp,Humidity,Enjoysport # sunny,warm,normal,yes # sunny,warm,high,yes # rainy,cold,high,no 2. Candidate Elimination Algorithm import numpy as np import pandas as pd data = pd.read_csv("training-data.csv") X = np.array(data.iloc[:, :-1]) y = np.array(data.iloc[:, -1]) specific_h = X[0].copy() general_h = [["?"] * len(specific_h) for _ in range(len(specific_h))] for i, row in enumerate(X): if str(y[i]).lower() == "yes": for j in range(len(specific_h)): if row[j] != specific_h[j]: specific_h[j] = "?" general_h[j][j] = "?" else: for j in range(len(specific_h)): if row[j] != specific_h[j]: general_h[j][j] = specific_h[j] else: general_h[j][j] = "?" general_h = [g for g in general_h if g != ["?"] * len(specific_h)] print("Final Specific:", specific_h) print("Final General:", general_h) 3. Decision Tree Classification – Breast Cancer Dataset import matplotlib.pyplot as plt from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier, plot_tree from sklearn.metrics import accuracy_score data = load_breast_cancer() X = data.data y = data.target X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=42) clf = DecisionTreeClassifier(random_state=42) clf.fit(X_train, y_train) y_pred = clf.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print(f"Accuracy: {accuracy * 100:.2f}%") new_sample = [X_test[0]] prediction = clf.predict(new_sample) prediction_class = "Benign" if prediction[0] == 1 else "Malignant" print(f"Predicted class for the new sample: {prediction_class}") plt.figure(figsize=(18, 8)) plot_tree(clf, filled=True, feature_names=data.feature_names, class_names=data.target_names) plt.title("Decision Tree - Breast Cancer Dataset") plt.show() 4. Naive Bayes Classification – Student Result import pandas as pd from sklearn.model_selection import train_test_split from sklearn.naive_bayes import GaussianNB from sklearn.metrics import accuracy_score from sklearn.preprocessing import LabelEncoder df = pd.read_csv("book2.csv") le = LabelEncoder() for column in df.columns: df[column] = le.fit_transform(df[column]) X = df.iloc[:, :-1] y = df.iloc[:, -1] X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.3, random_state=42) model = GaussianNB() model.fit(X_train, y_train) y_pred = model.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print("Accuracy:", accuracy * 100) new_sample = [[1, 1, 0]] prediction = model.predict(new_sample) result = "Pass" if prediction[0] == 1 else "Fail" print("Prediction for new student:", result) 5. K-Nearest Neighbors (KNN) – Iris Dataset from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier data = load_iris() x = data.data y = data.target x_train, x_test, y_train, y_test = train_test_split( x, y, test_size=0.2, random_state=42) model = KNeighborsClassifier(n_neighbors=3) model.fit(x_train, y_train) y_pred = model.predict(x_test) print("\nCorrect predictions:") for i in range(len(y_test)): if y_test[i] == y_pred[i]: print(f"actual:{data.target_names[y_test[i]]}," f"predicted:{data.target_names[y_pred[i]]}") print("\nWrong predictions:") for i in range(len(y_test)): if y_test[i] != y_pred[i]: print(f"actual:{data.target_names[y_test[i]]}," f"predicted:{data.target_names[y_pred[i]]}") correct = sum(y_test == y_pred) accuracy = correct / len(y_test) print("\nAccuracy:", accuracy * 100) 6. Artificial Neural Network (ANN) – Iris Dataset from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.neural_network import MLPClassifier from sklearn.metrics import accuracy_score iris = load_iris() X = iris.data y = iris.target X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=42) ann = MLPClassifier(hidden_layer_sizes=(5,), max_iter=1000, random_state=42) ann.fit(X_train, y_train) y_pred = ann.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print("Predicted values:", y_pred) print("\nActual values:", y_test) print(f"\nAccuracy: {accuracy * 100:.2f}%") 7. Linear Regression – Hours vs Marks import matplotlib.pyplot as plt import pandas as pd from sklearn.linear_model import LinearRegression data = pd.read_csv("p.csv") X = data[['Hours']] y = data['Marks'] model = LinearRegression() model.fit(X, y) y_pred = model.predict(X) residuals = y - y_pred plt.figure(figsize=(8, 5)) plt.scatter(X, y) plt.plot(X, y_pred) plt.title("Regression Analysis") plt.xlabel("Hours") plt.ylabel("Marks") plt.show() plt.figure(figsize=(8, 5)) plt.scatter(y_pred, residuals) plt.axhline(y=0) plt.title("Residual Plot") plt.xlabel("Predicted Values") plt.ylabel("Residuals") plt.show() 8. Statistical Measures – Mean, Median, Mode, Variance and Standard Deviation import numpy as np from scipy import stats data = [12, 15, 18, 15, 20, 22, 15, 18, 25, 30] mean = np.mean(data) median = np.median(data) mode_res = stats.mode(data, keepdims=True) variance = np.var(data) std_dev = np.std(data) print("Dataset:", data) print("Mean =", mean) print("Median =", median) print("Mode =", mode_res.mode[0]) print("Variance =", variance) print("Standard Deviation =", std_dev) 9. K-Means Clustering import pandas as pd from sklearn.cluster import KMeans data = pd.read_csv("D:/p7.csv") print("Dataset") print(data) X = data[['X', 'Y']] kmeans = KMeans(n_clusters=2, random_state=0) kmeans.fit(X) data['Cluster'] = kmeans.labels_ print("\nClustered data") print(data) print("\nCentroids:") print(kmeans.cluster_centers_) 10. Locally Weighted Linear Regression (LWLR) import matplotlib.pyplot as plt import numpy as np import pandas as pd df = pd.read_csv("D:/training2.csv") x, y = df["x"].to_numpy(), df["y"].to_numpy() X = np.c_[np.ones_like(x), x] def lwlr(x0, tau=0.5): w = np.exp(-((x - x0) ** 2) / (2 * tau**2)) theta = np.linalg.solve( X.T @ (w[:, None] * X), X.T @ (w * y)) return np.array([1, x0]) @ theta x_pred = np.linspace(x.min(), x.max(), 100) y_pred = [lwlr(x0) for x0 in x_pred] plt.scatter(x, y, c="red", label="Data Points") plt.plot(x_pred, y_pred, "b-", label="LWR Curve") plt.xlabel("X") plt.ylabel("y") plt.title("Locally Weighted Regression") plt.legend() plt.show()