scikit-learn入门到精通(一):快速入门

加载数据集

#encoding=utf-8
'''
一个dataset是一个类似字典的对象,数据存储在n_samples,n_features的array对象.data中,在监督学习中,响应
变量存储在.target中
'''
from sklearn import datasets
iris = datasets.load_iris()
digits = datasets.load_digits()
print digits.data
digits.target
digits.images[0]
'''
1,学习和预测
 python的estimator类实现了fit(X)和predict(T)方法,sklearn.svm.SVC实现了SVM分类器
'''
from sklearn import svm
clf = svm.SVC(gamma=0.001,C=100.) #手动指定参数,事实上可以使用例如grid search和cross validation工具来自动选择参数
'''训练模型'''
clf.fit(digits.data[:-1],digits.target[:-1])
'''预测最后一个样本'''
clf.predict(digits.data[-1:])
'''一个手写字符识别完整例子
http://scikit-learn.org/stable/auto_examples/classification/plot_digits_classification.html
#example-classification-plot-digits-classification-py
'''

保存模型

#encoding=utf-8
'''
使用python内置的pickle保存模型
'''
from sklearn import svm
from sklearn import datasets
clf =svm.SVC()
iris = datasets.load_iris()
X,y=iris.data,iris.target
clf.fit(X,y)
import pickle
s= pickle.dumps(clf)
clf2=pickle.loads(s)
clf2.predict(X[0:1])
y[0]
'''
joblib适合存储大型模型,但是智能放到磁盘,而不能为字符串
'''
from sklearn.externals import joblib
joblib.dump(clf,'filename.pkl')
clf=joblib.load('filename.pkl')

Conventions

#encoding=utf-8
'''
Type casting
'''
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')
X.dtype

transformer = random_projection.GaussianRandomProjection()
X_new = transformer.fit_transform(X)  #转为float64
X_new.dtype

'''
回归时响应变量转为float64,分类时步改变
'''
from sklearn import datasets
from sklearn.svm import SVC
iris = datasets.load_iris()
clf = SVC()
clf.fit(iris.data,iris.target)
list(clf.predict(iris.data[:3]))
clf.fit(iris.data,iris.target_names[iris.target])
list(clf.predict(iris.data[:3]))

'''
重新拟合更新参数,通过sklearn.pipeline.Pipeline.set_params方法,多次调用fit()方法将会覆盖前面fit()所学习到的
'''
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)
clf.predict(X_test)
clf.set_params(kernel='rbf').fit(X,y)
clf.predict(X_test)
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值