Hinweise zum maschinellen Lernen – Verschiedene Hinweise III

1. Speichern und laden Sie Aufrufe des svm-Modells in sklearn

(1) Essiggurke verwenden

# 模型保存
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) Mit joblib

# 模型读取
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. So löschen Sie eine Spalte in Pandas

(1) del df['columns'] #Ändere die Originaldaten

(2) df.drop('columns',axis=1)#Delete ändert die ursprünglichen Daten der Tabelle nicht, Sie können die Daten durch Neuzuweisung zuweisen

(3) df.drop('columns',axis=1,inplace='True') #Ändere die Originaldaten

3、Name Joblib kann nicht aus sklearn.externals importiert werden

Lösung 1: Import joblib direkt verwenden

Lösung 2: Rollback der Version

Entfernen Sie die aktuelle Version von scikit-learn,  pip uninstall scikit-learn
installieren Sie die alte Version von scikit-learn pip install scikit-learn==0.20.3

4, sklearn medium KFold gegeben Stratified KFold

(1) Die StratifiedKFold-Funktion übernimmt die Methode der geschichteten Teilung (Idee der geschichteten Zufallsstichprobe), und der Anteil der verschiedenen Kategorien im Verifizierungssatz stimmt mit dem Anteil der ursprünglichen Stichprobe überein, sodass StratifiedKFold bei der Erstellung das Label-Feature übergeben muss der Unternehmensbereich.

(2) Die Parameter der beiden Funktionen sind gleich

n_splits: Der Standardwert ist 3, der angibt, in wie viele Teile die Daten aufgeteilt werden sollen, d. h. k in k-facher Kreuzvalidierung;

Shuffle: Der Standardwert ist False und gibt an, ob die Bestellung gemischt werden muss. Dieser Parameter ist an vielen Funktionen beteiligt. Wenn er auf True gesetzt ist, wird die Bestellung gemischt und dann geteilt. Wenn er False ist, wird sie geteilt direkt nach Bestellung;

random_state: Der Standardwert ist None, was den Startwert der Zufallszahlen angibt, der nur wirksam wird, wenn shuffle auf True gesetzt ist.

5. Pandas löscht Zeilen, die die Bedingungen erfüllen

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, Pandas Drop-Funktionsparameter

df.drop(labels=Keine, Achse=0, Index=Keine, Spalten=Keine, Ebene=Keine, Inplace=False, 
        Fehler='Raise')

Labels: zu löschende Spalten oder Zeilen, mehrere eingehende Listen
Achse: Achsenrichtung, 0 ist Zeile, 1 ist Spalte, Standard ist 0
Index: angegebene Zeile oder Zeilen,
Spalte: angegebene Spalte oder Zeilen Spaltenebene
: Indexebene, diese Ebene wird sein gelöscht
an Ort und Stelle: Boolescher Wert, ob er wirksam wird
Fehler: ignorieren oder auslösen, standardmäßig auslösen, wenn ignorieren, Fehler unterdrücken und nur vorhandene Tags löschen

7. Verwenden Sie Sklearn, um einen Testdatensatz zu erstellen

        Die Sklearn-Bibliothek für Python bietet einen großartigen Beispiel-Dataset-Generator, mit dem Sie Ihre eigenen benutzerdefinierten Datasets erstellen können. Es ist schnell und sehr einfach zu bedienen.

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

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

Ich denke du magst

Origin blog.csdn.net/bashendixie5/article/details/123024230
Empfohlen
Rangfolge