Notes d'apprentissage automatique - Notes diverses III

1. Enregistrer et charger les appels du modèle svm dans sklearn

(1) Utilisez du cornichon

# 模型保存
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) Utilisation de la bibliothèque de tâches

# 模型读取
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. Comment supprimer une colonne dans les pandas

(1) del df['columns'] #Modifier les données d'origine

(2) df.drop('columns',axis=1)#Delete ne modifie pas les données d'origine du tableau, vous pouvez affecter les données par réaffectation

(3) df.drop('columns',axis=1,inplace='True') #Modifier les données d'origine

3, impossible d'importer le nom joblib à partir de sklearn.externals

Solution 1 : Utiliser directement import joblib

Solution 2 : restaurer la version

Supprimer la version actuelle de scikit-learn  pip uninstall scikit-learn
installer l'ancienne version de scikit-learn pip install scikit-learn==0.20.3

4, support sklearn KFold donné Stratifié KFold

(1) La fonction StratifiedKFold adopte la méthode de division stratifiée (idée d'échantillonnage aléatoire stratifié), et la proportion de différentes catégories dans l'ensemble de vérification est cohérente avec la proportion de l'échantillon d'origine, donc StratifiedKFold doit transmettre la fonction d'étiquette lors de la création la division.

(2) Les paramètres des deux fonctions sont les mêmes

n_splits : la valeur par défaut est 3, indiquant en combien de parties diviser les données, c'est-à-dire k dans la validation croisée k-fold ;

Mélange : la valeur par défaut est False, indiquant si l'ordre doit être mélangé. Ce paramètre est impliqué dans de nombreuses fonctions. S'il est défini sur True, l'ordre sera mélangé puis divisé. S'il est False, il sera divisé directement selon la commande;

random_state : la valeur par défaut est None, indiquant la graine des nombres aléatoires, qui ne prendra effet que lorsque shuffle est défini sur True.

5. Pandas supprime les lignes qui remplissent les conditions

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, paramètres de la fonction pandas drop

df.drop(labels=Aucun, axe=0, index=Aucun, colonnes=Aucun, niveau=Aucun, inplace=Faux, 
        erreurs='raise')

étiquettes : colonnes ou lignes à supprimer, plusieurs listes entrantes
axe : direction de l'axe, 0 est une ligne, 1 est une colonne, la valeur par défaut est 0
index : ligne ou lignes spécifiées,
colonne : colonne ou lignes spécifiées Niveau de colonne
: niveau d'index, ce niveau sera supprimé
à la place : valeur booléenne, si elle prend effet
erreurs : ignorer ou augmenter, augmenter par défaut, si ignorer, supprimer les erreurs et supprimer uniquement les balises existantes

7. Utilisez Sklearn pour créer un jeu de données de test

        La bibliothèque Sklearn pour Python fournit un excellent exemple de générateur d'ensembles de données qui vous aidera à créer vos propres ensembles de données personnalisés. C'est rapide et très facile à utiliser.

(1)make_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)make_moon

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)faire_cercle

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()

Je suppose que tu aimes

Origine blog.csdn.net/bashendixie5/article/details/123024230
conseillé
Classement