diff --git a/__pycache__/__init__.cpython-36.pyc b/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000..e09b883 Binary files /dev/null and b/__pycache__/__init__.cpython-36.pyc differ diff --git a/q01_my_decision_regressor/__pycache__/__init__.cpython-36.pyc b/q01_my_decision_regressor/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000..0f88f7a Binary files /dev/null and b/q01_my_decision_regressor/__pycache__/__init__.cpython-36.pyc differ diff --git a/q01_my_decision_regressor/__pycache__/build.cpython-36.pyc b/q01_my_decision_regressor/__pycache__/build.cpython-36.pyc new file mode 100644 index 0000000..aa3bf53 Binary files /dev/null and b/q01_my_decision_regressor/__pycache__/build.cpython-36.pyc differ diff --git a/q01_my_decision_regressor/build.py b/q01_my_decision_regressor/build.py index 5eb1927..99703ed 100644 --- a/q01_my_decision_regressor/build.py +++ b/q01_my_decision_regressor/build.py @@ -1,17 +1,30 @@ +# %load q01_my_decision_regressor/build.py # default imports from sklearn.model_selection import GridSearchCV from sklearn.tree import DecisionTreeRegressor from sklearn.metrics import r2_score from sklearn.model_selection import train_test_split import pandas as pd - -data = pd.read_csv("./data/house_pricing.csv") +import numpy as np +data = pd.read_csv('./data/house_pricing.csv') X = data.iloc[:, :-1] y = data.iloc[:, -1] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=9) -param_grid = {"max_depth": [2, 3, 5, 6, 8, 10, 15, 20, 30, 50], - "max_leaf_nodes": [2, 3, 4, 5, 10, 15, 20], - "max_features": [4, 8, 20, 25]} +param_grid = {'max_depth': [2, 3, 5, 6, 8, 10, 15, 20, 30, 50], + 'max_leaf_nodes': [2, 3, 4, 5, 10, 15, 20], + 'max_features': [4, 8, 20, 25]} + +def my_decision_regressor(X_train, X_test, y_train, y_test,param_grid): + np.random.seed(9) + # Write your solution here : + Dt = DecisionTreeRegressor(random_state=9 ) + Dt.fit(X_train, y_train) + grid = GridSearchCV(Dt, cv=5, param_grid=param_grid) + grid.fit(X_train, y_train) + #print(grid.r_square) + + r2_score = grid.score(X_test,y_test) + return r2_score , grid.best_params_ + -# Write your solution here : diff --git a/q01_my_decision_regressor/tests/__pycache__/__init__.cpython-36.pyc b/q01_my_decision_regressor/tests/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000..4480822 Binary files /dev/null and b/q01_my_decision_regressor/tests/__pycache__/__init__.cpython-36.pyc differ diff --git a/q01_my_decision_regressor/tests/__pycache__/test_q01_my_decision_regressor.cpython-36.pyc b/q01_my_decision_regressor/tests/__pycache__/test_q01_my_decision_regressor.cpython-36.pyc new file mode 100644 index 0000000..774d73c Binary files /dev/null and b/q01_my_decision_regressor/tests/__pycache__/test_q01_my_decision_regressor.cpython-36.pyc differ diff --git a/q02_decision_regressor_plot/__pycache__/__init__.cpython-36.pyc b/q02_decision_regressor_plot/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000..3eee79d Binary files /dev/null and b/q02_decision_regressor_plot/__pycache__/__init__.cpython-36.pyc differ diff --git a/q02_decision_regressor_plot/__pycache__/build.cpython-36.pyc b/q02_decision_regressor_plot/__pycache__/build.cpython-36.pyc new file mode 100644 index 0000000..45f4b23 Binary files /dev/null and b/q02_decision_regressor_plot/__pycache__/build.cpython-36.pyc differ diff --git a/q02_decision_regressor_plot/build.py b/q02_decision_regressor_plot/build.py index 020d81e..e9cd3a9 100644 --- a/q02_decision_regressor_plot/build.py +++ b/q02_decision_regressor_plot/build.py @@ -1,3 +1,4 @@ +# %load q02_decision_regressor_plot/build.py # default imports from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeRegressor @@ -7,11 +8,34 @@ import numpy as np plt.switch_backend('agg') -data = pd.read_csv("./data/house_pricing.csv") +data = pd.read_csv('./data/house_pricing.csv') X = data.iloc[:, :-1] y = data.iloc[:, -1] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=9) depth_list = [2, 8, 10, 15, 20, 25, 30, 35, 45, 50, 80] -# Write your solution here : +def decision_regressor_plot(X_train, X_test, y_train, y_test ,depths): + np.random.seed(9) + test_scores =[] + train_scores =[] + etest_scores =[] + etrain_scores =[] + for i in depths: + dtm = DecisionTreeRegressor(max_depth=i ) + dtm.fit(X_train,y_train) + train_scores.append(dtm.score(X_train,y_train)) + test_scores.append( dtm.score(X_test,y_test)) + y_tpred = dtm.predict(X_train) + y_pred = dtm.predict(X_test) + etrain_scores.append(mean_squared_error(y_train, y_tpred)) + etest_scores.append(mean_squared_error(y_test, y_pred)) + plt.plot(depths,train_scores) + plt.plot(depths,test_scores ) + plt.xlabel('Max Depth') + plt.ylabel('Mean Square Error') + plt.show() + + + + diff --git a/q02_decision_regressor_plot/tests/__pycache__/__init__.cpython-36.pyc b/q02_decision_regressor_plot/tests/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000..03cbc05 Binary files /dev/null and b/q02_decision_regressor_plot/tests/__pycache__/__init__.cpython-36.pyc differ diff --git a/q02_decision_regressor_plot/tests/__pycache__/test_q02_decision_regressor_plot.cpython-36.pyc b/q02_decision_regressor_plot/tests/__pycache__/test_q02_decision_regressor_plot.cpython-36.pyc new file mode 100644 index 0000000..b5771e6 Binary files /dev/null and b/q02_decision_regressor_plot/tests/__pycache__/test_q02_decision_regressor_plot.cpython-36.pyc differ diff --git a/q03_my_decision_classifier/__pycache__/__init__.cpython-36.pyc b/q03_my_decision_classifier/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000..f7393f5 Binary files /dev/null and b/q03_my_decision_classifier/__pycache__/__init__.cpython-36.pyc differ diff --git a/q03_my_decision_classifier/__pycache__/build.cpython-36.pyc b/q03_my_decision_classifier/__pycache__/build.cpython-36.pyc new file mode 100644 index 0000000..c5dab00 Binary files /dev/null and b/q03_my_decision_classifier/__pycache__/build.cpython-36.pyc differ diff --git a/q03_my_decision_classifier/build.py b/q03_my_decision_classifier/build.py index 73c9856..9c9e819 100644 --- a/q03_my_decision_classifier/build.py +++ b/q03_my_decision_classifier/build.py @@ -1,3 +1,4 @@ +# %load q03_my_decision_classifier/build.py # default imports from sklearn.model_selection import RandomizedSearchCV from sklearn.tree import DecisionTreeClassifier @@ -6,16 +7,26 @@ import pandas as pd import numpy as np -data = pd.read_csv("./data/loan_prediction.csv") +data = pd.read_csv('./data/loan_prediction.csv') np.random.seed(9) X = data.iloc[:, :-1] y = data.iloc[:, -1] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=9) +accuracy_score +param_grid = {'max_depth': [8, 10, 15, 20], + 'max_leaf_nodes': [2, 5, 9, 15, 20], + 'max_features': [1, 2, 3, 5]} + +def my_decision_classifier(X_train, X_test, y_train, y_test,param_grid ,n_iter_search =10 ): + dt = DecisionTreeClassifier(random_state = 9 ) + rs = RandomizedSearchCV(dt , param_distributions = param_grid, n_iter = n_iter_search ) + rs.fit(X_train, y_train) + y_predit = rs.predict(X_test) + accuracy = accuracy_score(y_test,y_predit) + best_params = rs.best_params_ + return accuracy , best_params + -param_grid = {"max_depth": [8, 10, 15, 20], - "max_leaf_nodes": [2, 5, 9, 15, 20], - "max_features": [1, 2, 3, 5]} -# Write your solution here : diff --git a/q03_my_decision_classifier/tests/__pycache__/__init__.cpython-36.pyc b/q03_my_decision_classifier/tests/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000..1f21bea Binary files /dev/null and b/q03_my_decision_classifier/tests/__pycache__/__init__.cpython-36.pyc differ diff --git a/q03_my_decision_classifier/tests/__pycache__/test_q03_my_decision_classifier.cpython-36.pyc b/q03_my_decision_classifier/tests/__pycache__/test_q03_my_decision_classifier.cpython-36.pyc new file mode 100644 index 0000000..5c2cbd1 Binary files /dev/null and b/q03_my_decision_classifier/tests/__pycache__/test_q03_my_decision_classifier.cpython-36.pyc differ diff --git a/q04_decision_classifier_plot/__pycache__/__init__.cpython-36.pyc b/q04_decision_classifier_plot/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000..7dee118 Binary files /dev/null and b/q04_decision_classifier_plot/__pycache__/__init__.cpython-36.pyc differ diff --git a/q04_decision_classifier_plot/__pycache__/build.cpython-36.pyc b/q04_decision_classifier_plot/__pycache__/build.cpython-36.pyc new file mode 100644 index 0000000..0d9fe60 Binary files /dev/null and b/q04_decision_classifier_plot/__pycache__/build.cpython-36.pyc differ diff --git a/q04_decision_classifier_plot/build.py b/q04_decision_classifier_plot/build.py index 44e9e87..97f983a 100644 --- a/q04_decision_classifier_plot/build.py +++ b/q04_decision_classifier_plot/build.py @@ -1,3 +1,4 @@ +# %load q04_decision_classifier_plot/build.py # default imports from sklearn.model_selection import RandomizedSearchCV from sklearn.tree import DecisionTreeClassifier @@ -6,9 +7,9 @@ import matplotlib.pyplot as plt import pandas as pd import numpy as np -plt.switch_backend('agg') -data = pd.read_csv("./data/loan_prediction.csv") +plt.switch_backend('agg') +data = pd.read_csv('./data/loan_prediction.csv') np.random.seed(9) X = data.iloc[:, :-1] y = data.iloc[:, -1] @@ -16,5 +17,26 @@ depth_list = [8, 10, 15, 20, 50, 100, 120, 150, 175, 200] +def decision_classifier_plot (X_train, X_test, y_train, y_test ,depths): + np.random.seed(9) + test_scores =[] + train_scores =[] + etest_scores =[] + etrain_scores =[] + for i in depths: + dtm = DecisionTreeClassifier(max_depth=i ) + dtm.fit(X_train,y_train) + train_scores.append(dtm.score(X_train,y_train)) + test_scores.append( dtm.score(X_test,y_test)) + y_tpred = dtm.predict(X_train) + y_pred = dtm.predict(X_test) + etrain_scores.append(accuracy_score(y_train, y_tpred)) + etest_scores.append(accuracy_score(y_test, y_pred)) + plt.plot(depths,etrain_scores) + plt.plot(depths,etest_scores ) + plt.xlabel('Max Depth') + plt.ylabel('Mean Square Error') + plt.show() + + -# Write your solution here : diff --git a/q04_decision_classifier_plot/tests/__pycache__/__init__.cpython-36.pyc b/q04_decision_classifier_plot/tests/__pycache__/__init__.cpython-36.pyc new file mode 100644 index 0000000..daf6d35 Binary files /dev/null and b/q04_decision_classifier_plot/tests/__pycache__/__init__.cpython-36.pyc differ diff --git a/q04_decision_classifier_plot/tests/__pycache__/test_q04_decision_classifier_plot.cpython-36.pyc b/q04_decision_classifier_plot/tests/__pycache__/test_q04_decision_classifier_plot.cpython-36.pyc new file mode 100644 index 0000000..85bb001 Binary files /dev/null and b/q04_decision_classifier_plot/tests/__pycache__/test_q04_decision_classifier_plot.cpython-36.pyc differ