本文整理汇总了Python中sklearn.discriminant_analysis.LinearDiscriminantAnalysis.transform方法的典型用法代码示例。如果您正苦于以下问题:Python LinearDiscriminantAnalysis.transform方法的具体用法?Python LinearDiscriminantAnalysis.transform怎么用?Python LinearDiscriminantAnalysis.transform使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类sklearn.discriminant_analysis.LinearDiscriminantAnalysis
的用法示例。
在下文中一共展示了LinearDiscriminantAnalysis.transform方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_lda_orthogonality
# 需要导入模块: from sklearn.discriminant_analysis import LinearDiscriminantAnalysis [as 别名]
# 或者: from sklearn.discriminant_analysis.LinearDiscriminantAnalysis import transform [as 别名]
def test_lda_orthogonality():
# arrange four classes with their means in a kite-shaped pattern
# the longer distance should be transformed to the first component, and
# the shorter distance to the second component.
means = np.array([[0, 0, -1], [0, 2, 0], [0, -2, 0], [0, 0, 5]])
# We construct perfectly symmetric distributions, so the LDA can estimate
# precise means.
scatter = np.array([[0.1, 0, 0], [-0.1, 0, 0], [0, 0.1, 0], [0, -0.1, 0],
[0, 0, 0.1], [0, 0, -0.1]])
X = (means[:, np.newaxis, :] + scatter[np.newaxis, :, :]).reshape((-1, 3))
y = np.repeat(np.arange(means.shape[0]), scatter.shape[0])
# Fit LDA and transform the means
clf = LinearDiscriminantAnalysis(solver="svd").fit(X, y)
means_transformed = clf.transform(means)
d1 = means_transformed[3] - means_transformed[0]
d2 = means_transformed[2] - means_transformed[1]
d1 /= np.sqrt(np.sum(d1 ** 2))
d2 /= np.sqrt(np.sum(d2 ** 2))
# the transformed within-class covariance should be the identity matrix
assert_almost_equal(np.cov(clf.transform(scatter).T), np.eye(2))
# the means of classes 0 and 3 should lie on the first component
assert_almost_equal(np.abs(np.dot(d1[:2], [1, 0])), 1.0)
# the means of classes 1 and 2 should lie on the second component
assert_almost_equal(np.abs(np.dot(d2[:2], [0, 1])), 1.0)
示例2: classify_using_lda
# 需要导入模块: from sklearn.discriminant_analysis import LinearDiscriminantAnalysis [as 别名]
# 或者: from sklearn.discriminant_analysis.LinearDiscriminantAnalysis import transform [as 别名]
def classify_using_lda(feat1, feat2, num_comp=2):
n_plus = len(feat1)
n_minus = len(feat2)
X = np.concatenate((feat1, feat2), axis=0)
y = np.concatenate((np.zeros(n_plus), np.ones(n_minus)), axis=0)
y += 1
print(X.shape, y.shape, n_plus, n_minus, feat1.shape, feat2.shape)
lda = LDA(n_components=num_comp)
lda.fit(X, y)
# TODO FIXME Why is this returning n_samples x 1, and not n_samples x 2?
# Is it able to to differentiate using just 1 component? Crazy!!
X_tr = lda.transform(X)
print(X_tr.shape, lda.score(X, y))
# CRAZY, we don't actually have the 2nd component from LDA
X1 = np.concatenate((X_tr[0:n_plus], np.zeros((n_plus, 1))), axis=1)
X2 = np.concatenate((X_tr[-n_minus:], np.ones((n_minus, 1))), axis=1)
plt.plot(X1[:, 0], X1[:, 1], 'ro')
plt.plot(X2[:, 0], X2[:, 1], 'g+')
plt.ylim(-1, 3)
plt.show()
示例3: lda
# 需要导入模块: from sklearn.discriminant_analysis import LinearDiscriminantAnalysis [as 别名]
# 或者: from sklearn.discriminant_analysis.LinearDiscriminantAnalysis import transform [as 别名]
def lda(X, y, n):
'''
Returns optimal projection of the data
LDA with n components
'''
selector = LinearDiscriminantAnalysis(n_components=n)
selector.fit(X, y)
return selector.transform(X), y
示例4: transformLDA
# 需要导入模块: from sklearn.discriminant_analysis import LinearDiscriminantAnalysis [as 别名]
# 或者: from sklearn.discriminant_analysis.LinearDiscriminantAnalysis import transform [as 别名]
def transformLDA(X,y,xTest):
originalSize = np.size(X,1)
print("Learning LDA \nProjecting {} features to 1 component".format(originalSize))
priors = [0.5,0.5]
clf = LinearDiscriminantAnalysis('svd', n_components=1,priors=priors)
print(X.shape)
X = clf.fit_transform(X,y)
print("True size of X : ", X.shape)
if xTest != []:
xTest = clf.transform(xTest)
return X,xTest
示例5: _dimReduce
# 需要导入模块: from sklearn.discriminant_analysis import LinearDiscriminantAnalysis [as 别名]
# 或者: from sklearn.discriminant_analysis.LinearDiscriminantAnalysis import transform [as 别名]
def _dimReduce(df, method='pca', n_components=2, labels=None, standardize=False, smatFunc=None, ldaShrinkage='auto'):
if method == 'kpca':
"""By using KernelPCA for dimensionality reduction we don't need to impute missing values"""
if smatFunc is None:
smatFunc = corrTSmatFunc
pca = KernelPCA(kernel='precomputed', n_components=n_components)
smat = smatFunc(df).values
xy = pca.fit_transform(smat)
pca.components_ = pca.alphas_
pca.explained_variance_ratio_ = pca.lambdas_ / pca.lambdas_.sum()
return xy, pca
elif method == 'pca':
if standardize:
normed = df.apply(lambda vec: (vec - vec.mean())/vec.std(), axis=0)
else:
normed = df.apply(lambda vec: vec - vec.mean(), axis=0)
pca = PCA(n_components=n_components)
xy = pca.fit_transform(normed)
return xy, pca
elif method == 'lda':
if labels is None:
raise ValueError('labels needed to perform LDA')
if standardize:
normed = df.apply(lambda vec: (vec - vec.mean())/vec.std(), axis=0)
else:
normed = df.apply(lambda vec: vec - vec.mean(), axis=0)
if df.shape[1] > df.shape[0]:
"""Pre-PCA step"""
ppca = PCA(n_components=int(df.shape[0]/1.5))
normed = ppca.fit_transform(df)
lda = LinearDiscriminantAnalysis(solver='eigen', shrinkage=ldaShrinkage, n_components=n_components)
lda.fit(normed, labels.values)
lda.explained_variance_ratio_ = np.abs(lda.explained_variance_ratio_) / np.abs(lda.explained_variance_ratio_).sum()
xy = lda.transform(normed)
elif method == 'pls':
if labels is None:
raise ValueError('labels needed to perform PLS')
if standardize:
normed = df.apply(lambda vec: (vec - vec.mean())/vec.std(), axis=0)
else:
normed = df.apply(lambda vec: vec - vec.mean(), axis=0)
pls = PLSRegression(n_components=n_components)
pls.fit(normed, labels)
pls.explained_variance_ratio_ = np.zeros(n_components)
xy = pls.x_scores_
return xy, pls
示例6: plot_sklearn_lda_with_lr
# 需要导入模块: from sklearn.discriminant_analysis import LinearDiscriminantAnalysis [as 别名]
# 或者: from sklearn.discriminant_analysis.LinearDiscriminantAnalysis import transform [as 别名]
def plot_sklearn_lda_with_lr(X_train, X_test, y_train, y_test):
lda = LDA(n_components=2)
X_train_lda = lda.fit_transform(X_train, y_train)
lr = LogisticRegression()
lr = lr.fit(X_train_lda, y_train)
plot_decision_regions(X_train_lda, y_train, classifier=lr)
plt.xlabel('LD 1')
plt.ylabel('LD 2')
plt.legend(loc='lower left')
plt.show()
X_test_lda = lda.transform(X_test)
plot_decision_regions(X_test_lda, y_test, classifier=lr)
plt.xlabel('LD 1')
plt.ylabel('LD 2')
plt.legend(loc='lower left')
plt.show()
示例7: do_LDA2D_KNN
# 需要导入模块: from sklearn.discriminant_analysis import LinearDiscriminantAnalysis [as 别名]
# 或者: from sklearn.discriminant_analysis.LinearDiscriminantAnalysis import transform [as 别名]
def do_LDA2D_KNN(digits,p,q):
l,r = LDA2D.iterative2DLDA(digits.train_Images, digits.train_Labels, p, q, 28, 28)
new_train = np.zeros((digits.train_Images.shape[0],p*q))
for i in range(digits.train_Images.shape[0]):
new_train[i] = (np.transpose(l)@digits.train_Images[i].reshape(28,28)@r).reshape(p*q)
new_test = np.zeros((digits.test_Images.shape[0],p*q))
for i in range(digits.test_Images.shape[0]):
new_test[i] = (np.transpose(l)@digits.test_Images[i].reshape(28,28)@r).reshape(p*q)
myLDA = LDA()
x = center_matrix_SVD(new_train)
new_new_train = myLDA.fit_transform(new_train-x.centers,digits.train_Labels)
new_new_test = myLDA.transform(new_test-x.centers)
labels, nearest = KNN(new_new_train,digits.train_Labels,new_new_test,10,'euclidean')
pickle.dump(labels, open('LDA2DFDA'+ str(p) + 'x' + str(q) + '_EU.p','wb'))
#pickle.dump(nearest, open('NLDA2DFDA'+ str(p) + 'x' + str(q) + '_EU.p','wb'))
labels, nearest = KNN(new_new_train,digits.train_Labels,new_new_test,10,'cityblock')
pickle.dump(labels, open('LDA2DFDA'+ str(p) + 'x' + str(q) + '_CB.p','wb'))
#pickle.dump(nearest, open('NLDA2DFDA'+ str(p) + 'x' + str(q) + '_CB.p','wb'))
labels, nearest = KNN(new_new_train,digits.train_Labels,new_new_test,10,'cosine')
pickle.dump(labels, open('LDA2DFDA'+ str(p) + 'x' + str(q) + '_CO.p','wb'))
示例8: main
# 需要导入模块: from sklearn.discriminant_analysis import LinearDiscriminantAnalysis [as 别名]
# 或者: from sklearn.discriminant_analysis.LinearDiscriminantAnalysis import transform [as 别名]
def main():
digits = mnist() # Creates a class with our mnist images and labels
if open('Training SVD Data','rb')._checkReadable() == 0: # Check if file exist create it if it doesn't
x = center_matrix_SVD(digits.train_Images) # Creates a class with our svd and associated info
pickle.dump(x,open('Training SVD Data','wb'))
else:
x = pickle.load(open('Training SVD Data','rb')) # If we already have the file just load it
if 1: # if this is zero skip
test_Images_Center = np.subtract(digits.test_Images,np.repeat(x.centers,digits.test_Images.shape[0],0))
tic()
myLDA = LDA() # Create a new instance of the LDA class
new_train = myLDA.fit_transform(x.PCA[:,:154],digits.train_Labels) # It will fit based on x.PCA
new_test = myLDA.transform([email protected](x.V[:154,:])) # get my transformed test dataset
Knn_labels = local_kmeans_class(new_train,digits.train_Labels,new_test,10) # Run kNN on the new data
toc()
pickle.dump(Knn_labels,open('Loc_kmeans_fda_lab','wb'))
fda = pickle.load(open('Loc_kmeans_fda_lab','rb'))
labels_Full = pickle.load(open('KNN_Full','rb'))
loc_full = pickle.load(open('Loc_kmeans_Full_lab','rb'))
errors_fda,ind_fda = class_error_rate(np.transpose(fda),digits.test_labels)
errors_near,ind_near = class_error_rate(labels_Full,digits.test_labels)
errors_full,ind_full = class_error_rate(np.transpose(loc_full),digits.test_labels)
labels_50 = pickle.load(open('KNN_50','rb'))
errors_50,ind_50 = class_error_rate(labels_50,digits.test_labels)
print(errors_full)
plt.figure()
plt.plot(np.arange(10)+1, errors_fda, color='Green', marker='o', markersize=10, label='fda Kmeans') #plots the 82.5%
plt.plot(np.arange(10)+1, errors_near, color='Blue', marker='o', markersize=10, label='kNN')
plt.plot(np.arange(10)+1, errors_full, color='Yellow', marker='o', markersize=10, label='Full Kmeans')
plt.plot(np.arange(10)+1, errors_50, color='Red', marker='o', markersize=10, label='kNN 50')
axes = plt.gca()
axes.set_ylim([0.015,0.12])
plt.grid(1) # Turns the grid on
plt.title('Plot of Local Kmeans with FDA Error rates')
plt.legend(loc='upper right') # Puts a legend on the plot
plt.show()
project_back(x,digits)
示例9: dimension_reduce
# 需要导入模块: from sklearn.discriminant_analysis import LinearDiscriminantAnalysis [as 别名]
# 或者: from sklearn.discriminant_analysis.LinearDiscriminantAnalysis import transform [as 别名]
def dimension_reduce(self,mode='L'):
print 'Reduce Dimensions...'
print 'Start:' + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
raw_train=self.train.copy()
train=self.train.copy()
train_label=self.train_label['label'].values.copy()
train_label=train_label.reshape((train_label.shape[0]))
test=self.test.copy()
test_label=self.test_label['label'].values.copy()
test_label=test_label.reshape((test_label.shape[0]))
flist=train.columns
if mode.upper()=='L':
lda=LinearDiscriminantAnalysis()
X_new=lda.fit_transform(train.values,train_label)
self.train=pd.DataFrame(X_new,columns=['DR'])
self.test=pd.DataFrame(lda.transform(test[flist].values),columns=['DR'])
tt=lda.coef_[0]
ind=np.argsort(tt)
features=raw_train.columns[ind[-100:]]
feas=pd.DataFrame()
feas['feature']=features
feas['values']=tt[ind[-100:]]
return feas
elif mode.upper()=='P':
pca = PCA(n_components=100)
X_new=pca.fit_transform(train.values,train_label)
self.train=pd.DataFrame(X_new)
self.test=pd.DataFrame(pca.transform(test[flist].values))
print 'End:' + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
示例10: main
# 需要导入模块: from sklearn.discriminant_analysis import LinearDiscriminantAnalysis [as 别名]
# 或者: from sklearn.discriminant_analysis.LinearDiscriminantAnalysis import transform [as 别名]
def main():
digits = mnist() # Creates a class with our mnist images and labels
if open('Training SVD Data','rb')._checkReadable() == 0: # Check if file exist create it if it doesn't
print("im here") # Just wanted to check if it was going in here
x = center_matrix_SVD(digits.train_Images) # Creates a class with our svd and associated info
pickle.dump(x,open('Training SVD Data','wb'))
else:
x = pickle.load(open('Training SVD Data','rb')) # If we already have the file just load it
if 0: # if this is zero skip
test_Images_Center = np.subtract(digits.test_Images,np.repeat(x.centers,digits.test_Images.shape[0],0))
tic()
myLDA = LDA() # Create a new instance of the LDA class
new_train = myLDA.fit_transform(x.PCA[:,:154],digits.train_Labels) # It will fit based on x.PCA
new_test = myLDA.transform([email protected](x.V[:154,:])) # get my transformed test dataset
Knn_labels, nearest = KNN(new_train,digits.train_Labels,new_test,10) # Run kNN on the new data
toc()
pickle.dump(Knn_labels,open('FDAKNN_Lables','wb'))
pickle.dump(nearest,open('FDAKNN_neastest','wb'))
fda = pickle.load(open('FDAKNN_Lables','rb'))
labels_Full = pickle.load(open('KNN_Full','rb'))
labels_50 = pickle.load(open('KNN_50','rb'))
errors_fda,ind_fda = class_error_rate(fda,digits.test_labels)
errors_near,ind_near = class_error_rate(labels_Full,digits.test_labels)
errors_50,ind_50 = class_error_rate(labels_50,digits.test_labels)
plt.figure()
plt.plot(np.arange(10)+1, errors_fda, color='Green', marker='o', markersize=10, label='fda') #plots the 82.5%
plt.plot(np.arange(10)+1, errors_near, color='Blue', marker='o', markersize=10, label='kNN')
plt.plot(np.arange(10)+1, errors_50, color='Yellow', marker='o', markersize=10, label='kNN 50')
plt.grid(1) # Turns the grid on
plt.title('Plot of Knn with FDA Error rates')
plt.legend(loc='upper right') # Puts a legend on the plot
plt.show()
print(confusion_matrix(digits.test_labels,labels_Full[5]))
print(confusion_matrix(digits.test_labels,fda[5]))
print(confusion_matrix(digits.test_labels,labels_50[5]))
"""
示例11: best_lda_nba
# 需要导入模块: from sklearn.discriminant_analysis import LinearDiscriminantAnalysis [as 别名]
# 或者: from sklearn.discriminant_analysis.LinearDiscriminantAnalysis import transform [as 别名]
def best_lda_nba(self):
dh = data_helper()
X_train, X_test, y_train, y_test = dh.get_nba_data()
scl = RobustScaler()
X_train_scl = scl.fit_transform(X_train)
X_test_scl = scl.transform(X_test)
lda = LinearDiscriminantAnalysis(n_components=2)
X_train_transformed = lda.fit_transform(X_train_scl, y_train)
X_test_transformed = lda.transform(X_test_scl)
# save
filename = './' + self.save_dir + '/nba_lda_x_train.txt'
pd.DataFrame(X_train_transformed).to_csv(filename, header=False, index=False)
filename = './' + self.save_dir + '/nba_lda_x_test.txt'
pd.DataFrame(X_test_transformed).to_csv(filename, header=False, index=False)
filename = './' + self.save_dir + '/nba_lda_y_train.txt'
pd.DataFrame(y_train).to_csv(filename, header=False, index=False)
filename = './' + self.save_dir + '/nba_lda_y_test.txt'
pd.DataFrame(y_test).to_csv(filename, header=False, index=False)
示例12: range
# 需要导入模块: from sklearn.discriminant_analysis import LinearDiscriminantAnalysis [as 别名]
# 或者: from sklearn.discriminant_analysis.LinearDiscriminantAnalysis import transform [as 别名]
eigen_pairs = [
(np.abs(eigen_vals[i], eigetn_vecs[:, i]) for i in range(len(eigen_vals)))]
eigen_pairs = sorted(eigen_pairs, key = lambda k: k[0], reverse = True)
print('Eigenvalues in decreasing order:\n')
for ev in eigen_pairs:
print ev[0]
'''
# LDA in sklearn
lda = LDA(n_components = 2)
X_train_lda = lda.fit_transform(X_train_std, y_train)
lr = LogisticRegression()
lr = lr.fit(X_train_lda, y_train)
plot_decision_regions(X_train_lda, y_train, classifier = lr)
plt.xlabel('LD 1')
plt.ylabel('LD 2')
plt.legend(loc = 'lower left')
plt.show()
# On test set:
X_test_lda = lda.transform(X_test_std)
plot_decision_regions(X_test_lda, y_test, classifier = lr)
plt.xlabel('LD 1')
plt.ylabel('LD 2')
plt.legend(loc = 'lower left')
plt.show()