I'm working on a project using Python(3.6) and Sklearn.I have done classifications but when I try to apply it for reshaping in order to use it with fit method of sklearn it returns an error.
Here's what I have tried:
# Get all the columns from dataframe
columns = data.columns.tolist()# Filter the columns to remove data we don't want
columns = [c for c in columns if c not in ["Class"] ]# store the variables we want to predicting on
target = "Class"
X = data.drop(target, 1)
Y = data[target]# Print the shapes of X & Y
print(X.shape)
print(Y.shape)# define a random state
state = 1# define the outlier detection method
classifiers = {"Isolation Forest": IsolationForest(max_samples=len(X),contamination=outlier_fraction,random_state=state),"Local Outlier Factor": LocalOutlierFactor(n_neighbors = 20,contamination = outlier_fraction)
}# fit the model
n_outliers = len(Fraud)for i, (clf_name, clf) in enumerate(classifiers.items()):# fit te data and tag outliersif clf_name == "Local Outlier Factor":y_pred = clf.fit_predict(X)scores_pred = clf.negative_outlier_factor_else:clf.fit(X)scores_pred = clf.decision_function(X)y_pred = clf.predict(X)# Reshape the prediction values to 0 for valid and 1 for fraudulenty_pred[y_pred == 1] = 0y_pred[y_pred == -1] = 1n_errors = (y_pred != Y).sum()# run classification metrics print('{}:{}'.format(clf_name, n_errors))print(accuracy_score(Y, y_pred ))print(classification_report(Y, y_pred ))
Then it returns the following error:
ValueError: could not convert string to float: '301.48 Change: $0.00'
and it's pointed to `clf.fit(X)` line.
What have I configured wrong?