2016-03-11 17 views
5

Tôi muốn áp dụng mô-đun sklearn.preprocessing.scale chia tỷ lệ mà scikit-learn cung cấp cho tập trung tập dữ liệu mà tôi sẽ sử dụng để đào tạo trình phân loại svm.Làm thế nào để lưu trữ các tham số mở rộng để sử dụng sau này

Làm cách nào để lưu trữ các thông số chuẩn hóa để tôi cũng có thể áp dụng chúng cho dữ liệu mà tôi muốn phân loại?

Tôi biết tôi có thể sử dụng standarScaler nhưng tôi có thể bằng cách nào đó serialize nó vào một tập tin để tôi sẽ không phải phù hợp với dữ liệu của tôi mỗi khi tôi muốn chạy phân loại?

Trả lời

2

Tôi nghĩ rằng cách tốt nhất là chọn nó sau fit, vì đây là tùy chọn chung nhất. Có lẽ sau này bạn sẽ tạo một đường ống bao gồm cả trình trích xuất và tính năng chia tỷ lệ. Bằng cách tẩy một giai đoạn (có thể ghép), bạn đang làm cho mọi thứ chung chung hơn. sklearn documentation on model persistence thảo luận cách thực hiện việc này.

Có nói rằng, bạn có thể truy vấn sklearn.preprocessing.StandardScaler cho các thông số phù hợp:

scale_: ndarray, hình dạng (n_features,) mỗi tính năng mở rộng quy mô tương đối của các dữ liệu. Mới trong phiên bản 0,17: scale_ được khuyến nghị thay vì std_ không được chấp nhận. mean_: mảng nổi với hình dạng [n_features] Giá trị trung bình cho mỗi đối tượng địa lý trong tập huấn luyện.

Đoạn ngắn dưới đây minh họa này:

from sklearn import preprocessing 
import numpy as np 

s = preprocessing.StandardScaler() 
s.fit(np.array([[1., 2, 3, 4]]).T) 
>>> s.mean_, s.scale_ 
(array([ 2.5]), array([ 1.11803399])) 
Các vấn đề liên quan