Ex 2
Ex 2
RegNo: 953622104040
EX-2
Build decision trees and random forest
1. Decision Tree
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
import matplotlib.pyplot as plt
from sklearn.tree import plot_tree
df=pd.read_csv('diabetes.csv')
x=df.drop('Outcome',axis=1)
y=df['Outcome']
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=42)
clf_gini=DecisionTreeClassifier(criterion='gini',random_state=42)
clf_gini.fit(x_train,y_train)
y_pred=clf_gini.predict(x_test)
accuracy=accuracy_score(y_test,y_pred)
print("Accuracy with gini criterion:",accuracy)
plt.figure(figsize=(12,8))
plot_tree(clf_gini,filled=True,feature_names=x.columns,class_names=['no
diabetes','diabetes'])
plt.show()
Output:
Name: Jeyasuriya K
RegNo: 953622104040
2. Random Forest
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
from sklearn.metrics import accuracy_score
from sklearn.ensemble import RandomForestClassifier
df=pd.read_csv('diabetes.csv')
x=df.drop('Outcome',axis=1)
y=df['Outcome']
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=42)
rf=RandomForestClassifier(n_estimators=100)
rf.fit(x_train,y_train)
y_pred=rf.predict(x_test)
accuracy=accuracy_score(y_test,y_pred)
print("Accuracy of the Model:",accuracy)
Output: