Scikit-learn深度学习快速入门实战-Day01-2

sklearn一般流程

sklearn 机器学习的一般流程包括:
数据的获取
特征的提取
特征的选择
数据预处理
模型的训练
模型的评估
模型的优化
模型持久化

 

一,数据的获取
可以导入内部数据集,计算机生成的数据集,网络上的数据集,文件中的数据集等。
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
%matplotlib inline
from sklearn import datasets
iris = datasets.load_iris()

# 利用dataframe 做简单的可视化分析
df = pd.DataFrame(iris.data,columns = iris.feature_names)
df['target'] = iris.target
df.plot(figsize = (12,8))
二,数据预处理
 
预处理数据包括:数据的标准化,数据的归一化,数据的二值化,非线性转换,数据特征编码,处
理缺失值等。
 
from sklearn import preprocessing
scaler = preprocessing.MinMaxScaler() #MinMaxScaler将样本特征值线性缩放到0,1之间
scaler.fit(iris.data) #先fit
data = scaler.transform(iris.data) #再transform. 也可以二合一写成fit_transform
target = iris.target
三,模型的训练
根据问题特点选择适当的估计器 estimater 模型:分类 (SVC,KNN,LR,NaiveBayes,...) 回归 (Lasso,ElasticNet,SVR,...) 聚类 (KMeans,...) 降维 (PCA,...)
 
我们当前的问题是根据特征预测鸢尾花的类型,属于带标签的分类问题,并且 samples 个数为 150 个小于100K, 所以根据 sklearn 使用我们选择 Linear SVC 模型进行分类。
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(data,target,test_size = 1/3)
len(X_train),len(X_test)

from sklearn import svm
clf = svm.SVC(kernel = 'linear',C = 1,probability=True)
clf.fit(X_train,y_train) #用训练集数据喂养模型
clf.predict(X_test) - y_test

# 查看参数
clf.get_params()
clf.C

clf.predict_proba(X_test)

#查看模型的得分
clf.score(X_test,y_test)
#对不同类型的模型有不同的评分算法,由score方法内部所定义
四,模型的评估
 
模型的评估和模型的优化相关功能在 sklearn.model_selection 中。
除了 使用 estimator score 函数 简单粗略地评估模型的质量之外,
sklearn.metrics 模块 针对不同的问题类型提供了各种评估指标并且可以创建用户自定义的评估指
标。
可以采用 交叉验证方法 评估模型的泛化能力,能够有效避免过度拟合。
K 折交叉验证 (K=10) 示意图
# 分类模型评分报告
from sklearn.metrics import classification_report
print(classification_report(target,clf.predict(data),
target_names = iris.target_names))

from sklearn.model_selection import cross_val_score
scores = cross_val_score(clf,data,target,cv=5) #采用5折交叉验证
print(scores)
#平均得分和95%置信区间
print("Accuracy: %0.2f(+/-%0.2f)"%(scores.mean(),scores.std()*2))
五,模型的优化
 
优化模型的方法包括 网格搜索法,随机搜索法,模型特定交叉验证,信息准则优化。
网格搜索法在指定的超参数空间中对每一种可能的情况进行交叉验证评分并选出最好的超参数组
from sklearn import svm
from sklearn.model_selection import GridSearchCV
# 估计器
svc = svm.SVC()
# 超参数空间
param_grid = [{'C':[0.1,1,10,100,1000],'kernel':['linear']},
 {'C':[0.1,1,10,100,1000],'gamma':[0.001,0.01],'kernel':['rbf']}]
# 打分函数
scoring = 'accuracy'
# 指定采样方法
clf = GridSearchCV(svc,param_grid,scoring = scoring,cv = 10)
clf.fit(data,target) # 得到的clf是一个优化了的分类器
clf.predict(data) # 用优化了的分类器进行分类
print(clf.get_params()) #查看全部参数
print(clf.best_params_) #查看最优参数
clf.best_score_
六,模型持久化
 
可以使用 python 内置的 pickle 模块或将训练好模型保存到磁盘或字符串,以便将来直接使用,而不
需要重复训练。对于 sklearn, 使用 joblib 会更加有效,但是只能保存到磁盘而不能保存成字符串。
import pickle
s = pickle.dumps(clf) #保存模型成字符串
clf2 = pickle.loads(s) #从字符串加载模型
clf2.predict(data)

from sklearn.externals import joblib
joblib.dump(clf,'filename.pkl') #保存模型到文件
clf3 = joblib.load('filename.pkl') #加载模型

clf3.predict(data)
正式开启机器学习之路,欢迎交流wx: jackey_love
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jay_+wqq_635731323

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值