需要注意的地方
输出参数类型
输出参数为双精度浮点数(float64)
import numpy as np
from sklearn import random_projection
rng = np.random.RandomState(0)
X = rng.rand(10, 2000)
X = np.array(X, dtype='float32')
print(X.dtype) #dtype('float32'),参数为单精度浮点数
transformer = random_projection.GaussianRandomProjection()
X_new = transformer.fit_transform(X)
print(X_new.dtype) #dtype('float64'),参数隐式转换为双精度浮点数
重新调用函数和参数更新
分类器的参数可以通过sklearn.pipeline.Pipeline.set_params进行改变。参数更新后调用fit()将覆盖以前数据并重新训练。
import numpy as np
from sklearn.svm import SVC
rng = np.random.RandomState(0)
X = rng.rand(100, 10)
y = rng.binomial(1, 0.5, 100)
X_test = rng.rand(5, 10)
clf = SVC()
clf.set_params(kernel='linear').fit(X, y) #使用线性核函数创建模型
'''
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
decision_function_shape=None, degree=3, gamma='auto', kernel='linear',
max_iter=-1, probability=False, random_state=None, shrinking=True,
tol=0.001, verbose=False)
'''
print(clf.predict(X_test)) #array([1, 0, 1, 1, 0])
clf.set_params(kernel='rbf').fit(X, y) #将核函数改变为径向基函数
'''
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
decision_function_shape=None, degree=3, gamma='auto', kernel='rbf',
max_iter=-1, probability=False, random_state=None, shrinking=True,
tol=0.001, verbose=False)
'''
print(clf.predict(X_test)) #array([0, 0, 0, 1, 0])