Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
261 changes: 261 additions & 0 deletions projects/multiai/Classifiers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,261 @@
import pandas as pd

import matplotlib.pyplot as plt

# from pandas.tools.plotting import scatter_matrix

from pandas.plotting import scatter_matrix

from matplotlib import cm

from sklearn.model_selection import train_test_split

from sklearn.linear_model import LogisticRegression

from sklearn.preprocessing import MinMaxScaler

from sklearn.tree import DecisionTreeClassifier

from sklearn.neighbors import KNeighborsClassifier

from sklearn.linear_model import Lasso

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis

from sklearn.naive_bayes import GaussianNB

from sklearn.svm import SVC






# Read the table from .txt file



fruits = pd.read_table('fruit_data_with_colors.txt')

fruits.head()



# Prepare data for classification



feature_names = ['mass', 'width', 'height', 'color_score']

X = fruits[feature_names]

y = fruits['fruit_label']



X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)



scaler = MinMaxScaler()

X_train = scaler.fit_transform(X_train)

X_test = scaler.transform(X_test)



# Classifier: logistic regression



logreg = LogisticRegression()

logreg.fit(X_train, y_train)

print('Accuracy of Logistic regression classifier on training set: {:.2f}'

.format(logreg.score(X_train, y_train)))

print('Accuracy of Logistic regression classifier on test set: {:.2f}'

.format(logreg.score(X_test, y_test)))

print(logreg.predict_proba([[0.14285714, 0.08823529, 0.69230769, 0.43243243]]))

print(logreg.predict([[0.14285714, 0.08823529, 0.69230769, 0.43243243]]))







# Classifier: Decission tree





clf = DecisionTreeClassifier().fit(X_train, y_train)

print('Accuracy of Decision Tree classifier on training set: {:.2f}'

.format(clf.score(X_train, y_train)))

print('Accuracy of Decision Tree classifier on test set: {:.2f}'

.format(clf.score(X_test, y_test)))



print(clf.predict_proba([[0.14285714, 0.08823529, 0.69230769, 0.43243243]]))

print(clf.predict([[0.14285714, 0.08823529, 0.69230769, 0.43243243]]))





# Classifier: K-Nearest Neighbors





knn = KNeighborsClassifier()

knn.fit(X_train, y_train)

print('Accuracy of K-NN classifier on training set: {:.2f}'

.format(knn.score(X_train, y_train)))

print('Accuracy of K-NN classifier on test set: {:.2f}'

.format(knn.score(X_test, y_test)))



print(logreg.predict_proba(X_train))

print(logreg.predict(X_train))



print(knn.predict_proba([[0.14285714, 0.08823529, 0.69230769, 0.43243243]]))

print(knn.predict([[0.14285714, 0.08823529, 0.69230769, 0.43243243]]))



# Classifier Linear Discriminant Analysis



lda = LinearDiscriminantAnalysis()

lda.fit(X_train, y_train)

print(X_train)



print('Accuracy of LDA classifier on training set: {:.2f}'

.format(lda.score(X_train, y_train)))

print('Accuracy of LDA classifier on test set: {:.2f}'

.format(lda.score(X_test, y_test)))





print(lda.predict_proba([[0.14285714, 0.08823529, 0.69230769, 0.43243243]]))

print(lda.predict([[0.14285714, 0.08823529, 0.69230769, 0.43243243]]))





# Classifier: Gaussian Naive Bayes



gnb = GaussianNB()

gnb.fit(X_train, y_train)

print('Accuracy of GNB classifier on training set: {:.2f}'

.format(gnb.score(X_train, y_train)))

print('Accuracy of GNB classifier on test set: {:.2f}'

.format(gnb.score(X_test, y_test)))



print(gnb.predict_proba([[0.14285714, 0.08823529, 0.69230769, 0.43243243]]))

print(gnb.predict([[0.14285714, 0.08823529, 0.69230769, 0.43243243]]))



# Classifier: Support Vector Machine



svm = SVC(probability=True)

svm.fit(X_train, y_train)

print('Accuracy of SVM classifier on training set: {:.2f}'

.format(svm.score(X_train, y_train)))

print('Accuracy of SVM classifier on test set: {:.2f}'

.format(svm.score(X_test, y_test)))



print(svm.predict_proba([[0.14285714, 0.08823529, 0.69230769, 0.43243243]]))

print(svm.predict([[0.14285714, 0.08823529, 0.69230769, 0.43243243]]))



#
# Load the Boston Data Set

# Create training and test split
#
# X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
#
# Create an instance of Lasso Regression implementation
#
lasso = Lasso(alpha=1.0)
#
# Fit the Lasso model
#
lasso.fit(X_train, y_train)
#
# Create the model score
#
# lasso.score(X_test, y_test), lasso.score(X_train, y_train)


print('Accuracy of Lasso classifier on training set: {:.2f}'

.format(lasso.score(X_train, y_train)))

print('Accuracy of Lasso classifier on test set: {:.2f}'

.format(lasso.score(X_test, y_test)))

# print('Lasso')
print(lasso.predict([[0.14285714, 0.08823529, 0.69230769, 0.43243243]]))
1 change: 1 addition & 0 deletions projects/multiai/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# multiai
60 changes: 60 additions & 0 deletions projects/multiai/fruit_data_with_colors.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
fruit_label fruit_name fruit_subtype mass width height color_score
1 apple granny_smith 192 8.4 7.3 0.55
1 apple granny_smith 180 8.0 6.8 0.59
1 apple granny_smith 176 7.4 7.2 0.60
2 mandarin mandarin 86 6.2 4.7 0.80
2 mandarin mandarin 84 6.0 4.6 0.79
2 mandarin mandarin 80 5.8 4.3 0.77
2 mandarin mandarin 80 5.9 4.3 0.81
2 mandarin mandarin 76 5.8 4.0 0.81
1 apple braeburn 178 7.1 7.8 0.92
1 apple braeburn 172 7.4 7.0 0.89
1 apple braeburn 166 6.9 7.3 0.93
1 apple braeburn 172 7.1 7.6 0.92
1 apple braeburn 154 7.0 7.1 0.88
1 apple golden_delicious 164 7.3 7.7 0.70
1 apple golden_delicious 152 7.6 7.3 0.69
1 apple golden_delicious 156 7.7 7.1 0.69
1 apple golden_delicious 156 7.6 7.5 0.67
1 apple golden_delicious 168 7.5 7.6 0.73
1 apple cripps_pink 162 7.5 7.1 0.83
1 apple cripps_pink 162 7.4 7.2 0.85
1 apple cripps_pink 160 7.5 7.5 0.86
1 apple cripps_pink 156 7.4 7.4 0.84
1 apple cripps_pink 140 7.3 7.1 0.87
1 apple cripps_pink 170 7.6 7.9 0.88
3 orange spanish_jumbo 342 9.0 9.4 0.75
3 orange spanish_jumbo 356 9.2 9.2 0.75
3 orange spanish_jumbo 362 9.6 9.2 0.74
3 orange selected_seconds 204 7.5 9.2 0.77
3 orange selected_seconds 140 6.7 7.1 0.72
3 orange selected_seconds 160 7.0 7.4 0.81
3 orange selected_seconds 158 7.1 7.5 0.79
3 orange selected_seconds 210 7.8 8.0 0.82
3 orange selected_seconds 164 7.2 7.0 0.80
3 orange turkey_navel 190 7.5 8.1 0.74
3 orange turkey_navel 142 7.6 7.8 0.75
3 orange turkey_navel 150 7.1 7.9 0.75
3 orange turkey_navel 160 7.1 7.6 0.76
3 orange turkey_navel 154 7.3 7.3 0.79
3 orange turkey_navel 158 7.2 7.8 0.77
3 orange turkey_navel 144 6.8 7.4 0.75
3 orange turkey_navel 154 7.1 7.5 0.78
3 orange turkey_navel 180 7.6 8.2 0.79
3 orange turkey_navel 154 7.2 7.2 0.82
4 lemon spanish_belsan 194 7.2 10.3 0.70
4 lemon spanish_belsan 200 7.3 10.5 0.72
4 lemon spanish_belsan 186 7.2 9.2 0.72
4 lemon spanish_belsan 216 7.3 10.2 0.71
4 lemon spanish_belsan 196 7.3 9.7 0.72
4 lemon spanish_belsan 174 7.3 10.1 0.72
4 lemon unknown 132 5.8 8.7 0.73
4 lemon unknown 130 6.0 8.2 0.71
4 lemon unknown 116 6.0 7.5 0.72
4 lemon unknown 118 5.9 8.0 0.72
4 lemon unknown 120 6.0 8.4 0.74
4 lemon unknown 116 6.1 8.5 0.71
4 lemon unknown 116 6.3 7.7 0.72
4 lemon unknown 116 5.9 8.1 0.73
4 lemon unknown 152 6.5 8.5 0.72
4 lemon unknown 118 6.1 8.1 0.70
Loading