fr/trainer.py

52 lines
1.1 KiB
Python
Raw Normal View History

2021-03-02 18:34:59 +05:30
import os
import sys
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.model_selection import train_test_split
from sklearn import svm
from sklearn import metrics
2021-03-02 23:29:59 +05:30
import pickle
2021-03-02 18:34:59 +05:30
if len(sys.argv) < 2:
print("no input csv file")
exit(0)
df = pd.read_csv(sys.argv[1])
# print(df, df.columns[0:len(df.columns)])
xcols = [ i for i in df.columns]
targ = xcols.pop()
# print(xcols)
X = df.loc[:,xcols ].values
print(X.shape)
Y = df.loc[:,targ].values
print(Y.shape)
X = StandardScaler().fit_transform(X)
print(X)
2021-03-02 23:29:59 +05:30
# pca = PCA(n_components=128)
# pcaofX = pca.fit_transform(X)
# print("shapeofX after pca",pcaofX.shape, ", cum Sum of variance ratio",pca.explained_variance_ratio_.cumsum()[-1])
2021-03-02 18:34:59 +05:30
2021-03-02 23:29:59 +05:30
pcaofX = X
2021-03-02 18:34:59 +05:30
2021-03-02 23:29:59 +05:30
X_train, X_test, Y_train, Y_test = train_test_split(pcaofX, Y, test_size=0.1,random_state=109)
2021-03-02 18:34:59 +05:30
print(X_train.shape)
2021-03-02 23:29:59 +05:30
svm_model = svm.SVC(kernel="linear")
svm_model.fit(X_train,Y_train)
2021-03-02 18:34:59 +05:30
2021-03-02 23:29:59 +05:30
pred = svm_model.predict(X_test)
print(pred)
print("Accuracy:",metrics.accuracy_score(Y_test, pred))
pickle.dump(svm_model, open("svm_model.sav", 'wb'))
2021-03-02 18:34:59 +05:30