def nmf_test(df): X = df.drop(['Year', 'zipcode'], axis=1).values scaler = MinMaxScaler() X_sca = scaler.fit_tranform(X) scores = [] for k in xrange(2, 11): model = NMF(n_components=k) W = model.fit_transform(X_sca) labels = W.argmax(axis=1) score = silhouette_score(X_sca, labels) scores.append(score) plt.plot(xrange(2, 11), scores, 'b*-') plt.show()
kmeans = KMeans( n_clusters=2 ) # you want cluster passengers in two grop survived or not survived kmeans.fit(X) len(X) correct = 0 for i in range(len(X)): predict_me = np.array(X[i].astype(float)) predict_me = predict_me.reshape(-1, len(predict_me)) prediction = kmeans.predict(predict_me) if prediction[0] == Y[i]: correct += 1 print(correct / len(X)) #step 2 scaler = MinMaxScaler() scaled_X = scaler.fit_tranform(X) kmeans.fit(scaled_X) correct = 0 for i in range(len(X)): predict_me = np.array(X[i].astype(float)) predict_me = predict_me.reshape(-1, len(predict_me)) prediction = kmeans.predict(predict_me) if prediction[0] == Y[i]: correct += 1 print(correct / len(X))
mport pandas as pd import tensorflow as tf import numpy as np import matplotlib.pyplot as plt from sklearn.preprocessing import StandardScaler, MinMaxScaler from tensorflow.keras import Sequential from tensorflow.keras.layers import Dense, LSTM, Dropout from tensorflow.keras import optimizers import os #from sklearn.externals import joblib import joblib from training_data import X_train2, y_train2 scaler = MinMaxScaler() training_data = scaler.fit_tranform(y_train2) joblib.dump(scaler, './scaler.save') scaler.transform(X_train2) X_train, y_train = np.array(X_train2), np.array(y_train2) x_train_reshaped = X_train.reshape(30,1,81) y_train_reshaped = y_train.reshape(30,1,81) regressor = Sequential() regressor.add(LSTM(units = 1000, activation = 'relu', return_sequences = True, input_shape = ((x_train_reshaped.shape[1], 81)))) regressor.add(Dropout(0.3)) regressor.add(Dense(1200,activation='relu')) regressor.add(Dense(800,activation='relu')) regressor.add(Dropout(0.2)) regressor.add(Dense(400,activation='relu')) regressor.add(Dense(100,activation='sigmoid'))