Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #by Dhruv and Aadhyathmik
- from sklearn.linear_model import LinearRegression
- from sklearn.feature_selection import RFE
- # Compare Algorithms
- import pandas as pd
- import matplotlib.pyplot as plt
- import numpy as np
- from matplotlib import pyplot
- from sklearn.metrics import accuracy_score
- from sklearn.model_selection import KFold, train_test_split
- from sklearn.model_selection import cross_val_score
- from sklearn.linear_model import LinearRegression
- from sklearn.linear_model import LinearRegression
- from sklearn.feature_selection import RFE
- from sklearn.linear_model import LogisticRegression
- from sklearn.ensemble import AdaBoostClassifier, RandomForestClassifier
- import seaborn as sns
- from sklearn.svm import SVC
- from sklearn.tree import DecisionTreeRegressor, DecisionTreeClassifier
- from sklearn.neural_network import MLPClassifier
- import warnings
- warnings.filterwarnings("ignore")
- def sibSpToInt(SibSp):
- if SibSp >= 1:
- SibSp = 'Accompanied'
- return SibSp
- SibSp = 'Alone'
- return SibSp
- def ageToInt(age):
- if age < 18:
- age = 1
- return age
- elif age < 38:
- age = 2
- return age
- else:
- age = 3
- return age
- cabin_set = set([])
- path = '/Users/dhruvk/Desktop/titanic/'
- train = pd.read_csv(path + "train.csv")
- test = pd.read_csv(path + "test.csv")
- submission = pd.read_csv(path + "gender_submission.csv")
- df = train
- df = df.drop(['Cabin', 'Name', 'Parch', 'Ticket', 'Embarked'], axis=1)
- df['Age'] = df['Age'].fillna(df['Age'].median())
- df['Age'] = df['Age'].apply(ageToInt)
- df['SibSp'] = df['SibSp'].apply(sibSpToInt)
- encoded_df = pd.get_dummies(df['SibSp'], prefix='SibSp')
- df = pd.concat([df, encoded_df], axis=1)
- df = df.drop('SibSp', axis=1)
- trainset, testset = train_test_split(df, test_size=0.3, random_state=0)
- genderToInt = {'male': 1, 'female': 2}
- trainset['Sex'] = trainset['Sex'].map(genderToInt)
- testset['Sex'] = testset['Sex'].map(genderToInt)
- Y_train = trainset['Survived']
- X_train = trainset[['Pclass', 'Sex', 'Age', 'Fare', 'SibSp_Accompanied', 'SibSp_Alone']]
- X_test = testset[['Pclass', 'Sex', 'Age', 'Fare', 'SibSp_Accompanied', 'SibSp_Alone']]
- Y_test = testset['Survived']
- dtreeC = DecisionTreeClassifier()
- dtreeC.fit(X_train, Y_train)
- y_test1 = dtreeC.predict(X_test)
- # print(len(Y_test, y_test))
- print("Decision Tree Classifier Accuracy:",accuracy_score(y_test1, Y_test) * 100)
- models = []
- models.append(("Decision Tree Classifier", dtreeC))
- ltree = LogisticRegression()
- ltree.fit(X_train, Y_train)
- y_test2 = ltree.predict(X_test)
- print("Logistic Regression Accuracy:", accuracy_score(y_test2, Y_test) * 100)
- models.append(("Logistic Regression", ltree))
- ada_clf = AdaBoostClassifier(
- DecisionTreeClassifier(max_depth=5), n_estimators=200,
- algorithm="SAMME.R", learning_rate=.19, random_state=42)
- ada_clf.fit(X_train, Y_train)
- y_test3 = ada_clf.predict(X_test)
- print("Ada Boost Classifier Accuracy:", accuracy_score(y_test3, Y_test) * 100)
- models.append(("Ada Boost Classifier", ada_clf))
- for depth in [3,4,5, 6]:
- rnd_clf = RandomForestClassifier(n_estimators=500, max_depth=depth, n_jobs=-1, random_state=42)
- rnd_clf.fit(X_train, Y_train)
- y_pred_rf = rnd_clf.predict(X_test)
- print("Random Forest Classifier Depth "+str(depth)+" Accuracy: ", accuracy_score(y_pred_rf, Y_test) * 100)
- models.append(("Random Forest: Depth "+str(depth), rnd_clf))
- results = []
- names = []
- # scoring = 'accuracy'
- scoring = 'r2'
- for name, model in models:
- kfold = KFold(n_splits=10) # , random_state=7)
- # kfold = KFold(n_splits=10) #, random_state=None)
- cv_results = cross_val_score(model, X_train, Y_train, cv=kfold, scoring=scoring)
- results.append(cv_results)
- names.append(name)
- msg = "%s: %f (%f)" % (name, cv_results.mean(), cv_results.std())
- print(msg)
- # boxplot algorithm comparison
- fig = pyplot.figure()
- fig.suptitle('Algorithm Comparison')
- ax = fig.add_subplot(111)
- pyplot.boxplot(results)
- ax.set_xticklabels(names)
- pyplot.show()
Advertisement
Add Comment
Please, Sign In to add comment