机器学习基础 互动版

需要注意的地方

输出参数类型

输出参数为双精度浮点数(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])