被这个错误困扰:TypeError:' PCA'对象不可调用

时间:2017-05-26 15:03:03

标签: python machine-learning scikit-learn pca

我错过了这个错误,因为在运行类型(PCAdata)之后,它返回<class 'numpy.ndarray'>。在阅读了类似的&#34;模块&#34;对象不是可调用的错误,似乎不关心不从类中导入对象本身,例如来自PCA导入PCA&#34;的#34;。但是,我已经从sklean.decomposition导入了PCA。

以下是我的数据:https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/wdbc.data

from sklearn.decomposition import PCA
import pandas as pd
import numpy as np 

#Load CSV
filename = 'data.csv'
data = pd.read_csv(filename)
df = pd.DataFrame(data)
df=df.dropna(axis=1,how='all')
array = df.values
X = array[:,2:32]
Y = array[:, 1]

#Normalize Data
def normalize(df):
    result = df.copy()
    for feature_name in df.columns:
        max_value = df[feature_name].max()
        min_value = df[feature_name].min()
        result[feature_name] = (df[feature_name] - min_value) / (max_value - min_value)
    return result



df_normalized = normalize(df[ df.columns[2:32]])

pca = PCA(n_components = 16)
pca.fit_transform(df_normalized)
PCAdf = pd.DataFrame(pca.components_, columns = df_normalized.columns, index = ['PC-1','PC-2','PC-3','PC-4','PC-5','PC-6','PC-7','PC-8','PC-9','PC-10','PC-11','PC-12','PC-13','PC-14','PC-15','PC-16'])
PCAarray = PCAdf.values


#Convert all of the "M" class labels as 1, and "B" Labels as 0
encoder = LabelEncoder()
encoder.fit(Y)
encoded_Y = encoder.transform(Y)
df_v_y_encoded = encoder.transform(df_v_y)

#Train again, this time using features from principal component analysis. 
classifierPCAfeatures = svm.SVC(gamma = "auto", C = 1, kernel = "rbf", decision_function_shape='ovo')
classifierPCAfeatures = fit(PCAdf, encoded_Y)
print(classifierPCAfeatures.score(df_v_x, df_v_y_encoded))

0 个答案:

没有答案