¿Cómo guardar un modelo entrenado con sklearn en Python?

Para guardar nuestro modelo entrenado con sklearn en python podemos usar pickle y joblib

# pickle
s = pickle.dumps(clf)
clf2 = pickle.loads(s)

#joblib
joblib.dump(clf, 'filename.joblib') 
eje = joblib.load('filename.joblib')

Pickle

In [6]:
# Entrenamos el modelo
from sklearn import svm
from sklearn import datasets

datos = datasets.load_iris()
X = datos.data
y = datos.target
clf = svm.SVC(kernel='linear', C=1)
clf.fit(X, y) 
a=clf.predict(X[0:5])

print(a)

# usar el modulo pickle para guardar y cargar
import pickle
s = pickle.dumps(clf)
clf2 = pickle.loads(s)
b=clf2.predict(X[0:5])
print(b)
[0 0 0 0 0]
[0 0 0 0 0]

joblib

In [7]:
# entrenamos el modelo
from sklearn import svm
from sklearn import datasets

datos = datasets.load_iris()
X = datos.data
y = datos.target
clf = svm.SVC(kernel='linear', C=1)
clf.fit(X, y) 
a=clf.predict(X[0:5])

print(a)

# usamos el modulo joblib para guardar y cargar
import joblib
joblib.dump(clf, 'filename.joblib') 
eje = joblib.load('filename.joblib')
b=eje.predict(X[0:5])
print(b)
[0 0 0 0 0]
[0 0 0 0 0]

¿Cómo eliminar tildes de string en Python?

Python puede ser utilizado para quitar tildes, podemos usar el módulo unicodedata y maketrans (de str).

Usando unicodedata

Una forma es utilizando el modulo unicodedata

In [1]:
import unicodedata

s = 'aepáéŕíóíúÁÉ'
trans_tab = dict.fromkeys(map(ord, u'\u0301\u0308'), None)
s = unicodedata.normalize('NFKC', unicodedata.normalize('NFKD', s).translate(trans_tab))
print(s)
aepaerioiuAE

Usando maketrans de str

También podemos usar la función maketrans de str

In [4]:
s = 'áéí el niño está en el avión'
a,b = 'áéíóúüñÁÉÍÓÚÜÑ','aeiouunAEIOUUN'
trans = str.maketrans(a,b)

print(s)
print(s.translate(trans))
áéí el niño está en el avión
aei el nino esta en el avion