機械学習ノート-その他のノートIII

1.sklearnでsvmモデルの呼び出しを保存およびロードします

(1)漬物を使う

# 模型保存
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)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.パンダの列を削除する方法

(1)del df ['columns']#元のデータを変更する

(2)df.drop('columns'、axis = 1)#Deleteはテーブルの元のデータを変更しません。再割り当てにより、データを割り当てることができます。

(3)df.drop('columns'、axis = 1、inplace ='True')#元のデータを変更します

3、sklearn.externalsから名前joblibをインポートできません

解決策1:importjoblibを直接使用する

解決策2:バージョンをロールバックする

現在のバージョンのscikit-learnを削除します pip uninstall scikit-learn
古いバージョンのscikit-learnをインストールします pip install scikit-learn==0.20.3

4、sklearn中KFold与StratifiedKFold

(1)StratifiedKFold関数は層化分割法(層化ランダムサンプリングのアイデア)を採用しており、検証セット内の異なるカテゴリの比率は元のサンプルの比率と一致しているため、StratifiedKFoldは作成時にラベル機能を渡す必要があります分裂。

(2)2つの関数のパラメーターは同じです

n_splits:デフォルトは3で、データを分割する部分の数、つまりk分割交差検定のkを示します。

シャッフル:デフォルト値はFalseで、順序をシャッフルする必要があるかどうかを示します。このパラメーターは多くの機能に関係します。Trueに設定されている場合、順序はシャッフルされてから分割されます。Falseの場合、分割されます。注文に従って直接;

random_state:デフォルトはNoneで、乱数のシードを示します。これは、シャッフルがTrueに設定されている場合にのみ有効になります。

5.Pandasは条件を満たす行を削除します

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、パンダは関数パラメーターをドロップします

df.drop(labels = None、axis = 0、index = None、columns = None、level = None、inplace = False、 
        errors ='raise')

ラベル:削除する列または行、複数の受信リスト
軸:軸方向、0は行、1は列、デフォルトは0
インデックス:指定された行または行、
列:指定された列または行列
レベル:インデックスレベル、このレベルはインプレース削除
ブール値、
エラーが有効かどうか:無視するか上げるか、デフォルトで上げる、無視する場合はエラーを抑制し、既存のタグのみを削除する

7.Sklearnを使用してテストデータセットを作成します

        Python用のSklearnライブラリは、独自のカスタムデータセットを作成するのに役立つ優れたサンプルデータセットジェネレーターを提供します。高速で非常に使いやすいです。

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

おすすめ

転載: blog.csdn.net/bashendixie5/article/details/123024230