Beispiel #1
0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sun Apr 21 03:22:03 2019

@author: maachou
"""

from sklearn.datasets import load_boston
import matplotlib.pyplot as plt
from PCA import PCA
pca = PCA(output_dim=2)
data = load_boston()
X = data.data
print(X.shape)
print(pca.fit_transform(X).shape)
Beispiel #2
0
for ii in range(dfiris.shape[1]):
    plt.scatter(np.arange(dfiris.shape[0]), dfiris[:, ii], s=5, cmap=color)
#%%

kpca = kPCA(kernel='polynomial').fit(X)
kpca.explained_variance
new = kpca.fit_transform()
new = kpca.fit_transform(X)
plt.scatter(new[:, 0], new[:, 1], c=y)

plt.plot(np.cumsum(kpca.explained_variance))
#%% PCA on raandom datasets

pca = PCA(2).fit(dfswis)
pca = kPCA(k=2, kernel='rbf').fit(dfclass)
newX = pca.fit_transform()
plt.scatter(newX[:, 0], newX[:, 1], c=yclass, s=3)
pca.explained_variance

#%% Image dataset example

from sklearn.datasets import fetch_lfw_people
faces = fetch_lfw_people(min_faces_per_person=60)
print(faces.target_names)
print(faces.images.shape)

pca = PCA(150).fit(faces.data)
#pca = kPCA(k=150, kernel='linear').fit(faces.data.T)
projected = pca.inverse_transform()
#fig, axes = plt.subplots(3, 8, figsize=(9, 4),
#                         subplot_kw={'xticks':[], 'yticks':[]},
Beispiel #3
0
print("KNN acc on the original data", acc)
plot_confusion_matrix(y_test, pred, title='KNN Confusion matrix original data')
plt.show()
print("knn report", metrics.classification_report(y_test, pred))
s = SVM()
s.train(x_train, y_train, x_test, y_test)
acc, _, pred = s.predict(x_test, y_test)
print("svm acc on original data", acc)
plot_confusion_matrix(y_test, pred, title='svm Confusion matrix')
plt.show()
print("svm report", metrics.classification_report(y_test, pred))

#Dimension reduction using PCA
start = timeit.default_timer()
pca = PCA(rid_dim)
(x_train_trans, x_test_trans) = pca.fit_transform(x_train, x_test)
stop = timeit.default_timer()
print('Time: ', stop - start)
#KNN
index, _ = choose_k(x_train_trans, y_train, x_test_trans, y_test, 5, 8)
print index
knn = KNN(index)
knn.train(x_train_trans, y_train)
acc, pred = knn.accuracy(x_test_trans, y_test)
print("KNN acc on the PCA data", acc)
plot_confusion_matrix(y_test, pred, title='Confusion matrix PCA data')
plt.show()
print("pca + knn report", metrics.classification_report(y_test, pred))

#SVM
s = SVM()
from PCA import PCA
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

X = np.random.rand(500, 3)
X = PCA.mean_normalize(X)
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.scatter3D(X[:, 0], X[:, 1], X[:, 2], cmap=plt.cm.viridis, linewidth=0.2)

print("XD")

pca = PCA()
z = pca.fit_transform(data=X, k=2)
plt.scatter(z[:, 0], z[:, 1], s=40)
plt.xlabel("Z1")
plt.ylabel("Z2")
plt.title("Reduced dimension from 3D to 2D")
plt.show()
import numpy as np
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA
from PCA import PCA
from Parser import get_data_set

X_train, X_test, y_train, y_test = get_data_set('digits.data')

pca_230 = PCA(230)
train_transformed_230 = pca_230.fit_transform(X_train)
test_transformed_230 = pca_230.transform(X_test)

pca_30 = PCA(30)
train_transformed_30 = pca_30.fit_transform(X_train)
test_transformed_30 = pca_30.transform(X_test)

PCA.plot_variance_for_k(X_train)

prediction_non_transformed = LDA().fit(X_train, y_train).predict(X_test)
score_non_transformed = np.mean(prediction_non_transformed == y_test)
print('Score LDA without PCA: {}'.format(score_non_transformed))

prediction_transformed_230 = LDA().fit(train_transformed_230,
                                       y_train).predict(test_transformed_230)
score_transformed_230 = np.mean(prediction_transformed_230 == y_test)
print('Score LDA with PCA, k={}: {}'.format(230, score_transformed_230))

prediction_transformed_30 = LDA().fit(train_transformed_30,
                                      y_train).predict(test_transformed_30)
score_transformed_30 = np.mean(prediction_transformed_30 == y_test)
print('Score LDA with PCA, k={}: {}'.format(30, score_transformed_30))