Notas de aprendizaje automático - Notas varias III

1. Guardar y cargar llamadas del modelo svm en sklearn

(1) Usa pepinillo

# 模型保存
import pickle
model.fit(train_X, train_y)
s=pickle.dumps(model)
f=open('svm.model', "wb+")
f.write(s)
f.close()

# 模型加载
f2=open('svm.model','rb')
s2=f2.read()
model=pickle.loads(s2)
predicted = model.predict(test_X)

(2) Uso de biblioteca de trabajos

# 模型读取
from sklearn.externals import joblib
model.fit(train_X, train_y)
joblib.dump(model, "train1_model.m")

# 模型调用
model1 = joblib.load("train1_model.m")
expected = test_y 
predicted = model1.predict(test_X)

2. Cómo eliminar una columna en pandas

(1) del df['columns'] #Cambiar los datos originales

(2) df.drop('columns',axis=1)#Delete no cambia los datos originales de la tabla, puedes asignar los datos por reasignación

(3) df.drop('columns',axis=1,inplace='True') #Cambiar los datos originales

3, no se puede importar el nombre joblib desde sklearn.externals

Solución 1: use import joblib directamente

Solución 2: Revertir la versión

Eliminar la versión actual de scikit-learn  pip uninstall scikit-learn
instalar la versión anterior de scikit-learn pip install scikit-learn==0.20.3

4, sklearn medio KFold dado KFold estratificado

(1) La función StratifiedKFold adopta el método de división estratificada (idea de muestreo aleatorio estratificado), y la proporción de diferentes categorías en el conjunto de verificación es consistente con la proporción de la muestra original, por lo que StratifiedKFold debe pasar en la función de etiqueta al hacer La división.

(2) Los parámetros de las dos funciones son los mismos

n_splits: el valor predeterminado es 3, que indica en cuántas partes dividir los datos, es decir, k en la validación cruzada k-fold;

Barajar: el valor predeterminado es Falso, lo que indica si el orden debe barajarse. Este parámetro está involucrado en muchas funciones. Si se establece en Verdadero, el orden se barajará y luego se dividirá. Si es Falso, se dividirá. directamente según el pedido;

random_state: el valor predeterminado es Ninguno, lo que indica la semilla de números aleatorios, que solo tendrá efecto cuando la reproducción aleatoria se establezca en Verdadero.

5. Pandas elimina las filas que cumplen las condiciones

df_clear = df.drop(df[df['x']<0.01].index)
# 也可以使用多个条件
#删除x小于0.01或大于10的行
df_clear = df.drop(df[(df['x']<0.01) | (df['x']>10)].index) 

6, parámetros de función de caída de pandas

df.drop(etiquetas=Ninguno, eje=0, índice=Ninguno, columnas=Ninguno, nivel=Ninguno, en el lugar=Falso, 
        errores='subir')

etiquetas: columnas o filas para eliminar, múltiples listas entrantes
eje: dirección del eje, 0 es fila, 1 es columna, el valor predeterminado es 0
índice: fila o filas especificadas,
columna: columna o filas especificadas Nivel de columna
: nivel de índice, este nivel será eliminado
en el lugar: valor booleano, si tiene efecto
errores: ignorar o aumentar, aumentar de forma predeterminada, si se ignora, suprimir errores y solo eliminar etiquetas existentes

7. Usa Sklearn para crear un conjunto de datos de prueba

        La biblioteca Sklearn para Python proporciona un excelente generador de conjuntos de datos de ejemplo que lo ayudará a crear sus propios conjuntos de datos personalizados. Es rápido y muy fácil de usar.

(1)hacer_blob

from sklearn.datasets import make_blobs
from matplotlib import pyplot as plt
from matplotlib import style
 
style.use("fivethirtyeight")
 
X, y = make_blobs(n_samples = 100, centers = 3,
               cluster_std = 1, n_features = 2)
 
plt.scatter(X[:, 0], X[:, 1], s = 40, color = 'g')
plt.xlabel("X")
plt.ylabel("Y")
 
plt.show()
plt.clf()

(2) hacer_luna

from sklearn.datasets import make_moons
from matplotlib import pyplot as plt
from matplotlib import style
 
X, y = make_moons(n_samples = 1000, noise = 0.1)
plt.scatter(X[:, 0], X[:, 1], s = 40, color ='g')
plt.xlabel("X")
plt.ylabel("Y")
 
plt.show()
plt.clf()

(3) hacer_círculo

from sklearn.datasets import make_circles
from matplotlib import pyplot as plt
from matplotlib import style
 
style.use("fivethirtyeight")
 
X, y = make_circles(n_samples = 100, noise = 0.02)
plt.scatter(X[:, 0], X[:, 1], s = 40, color ='g')
plt.xlabel("X")
plt.ylabel("Y")
 
plt.show()
plt.clf()

Supongo que te gusta

Origin blog.csdn.net/bashendixie5/article/details/123024230
Recomendado
Clasificación