只要是接触机器学习的,很少有没听过sklearn的,这个真的可以称得上是机器学习快速进行的神器了,在研究生的时候搭建常用的机器学习模型用的就是sklearn,今天应部门的一些需求,简单的总结了一点使用方法,后面还会继续更新,今天仅使用sklearn自带的数据集来实践一下分类和回归模型,比较简单就不再进行解释了,主要是看一下sklearn自身有哪些数据集可以很方便地去使用,下面是具体的实践:

#!usr/bin/env python
#encoding:utf-8'''
__Author__:沂水寒城
功能:sklearn 数据集探索
sklearn自动了下面几种数据用于算法练习。
load_boston([return_X_y]) 加载波士顿房价数据;用于回归问题
load_iris([return_X_y]) 加载iris 数据集;用于分类问题
load_diabetes([return_X_y]) 加载糖尿病数据集;用于回归问题
load_digits([n_class, return_X_y]) 加载手写字符集;用于分类问题
load_linnerud([return_X_y]) 加载linnerud 数据集;用于多元回归问题
'''import sys
reload(sys)
sys.setdefaultencoding('utf-8')
#加载各种数据集
from sklearn.datasets import load_iris
from sklearn.datasets import load_boston
from sklearn.datasets import load_diabetes
from sklearn.datasets import load_linnerud
#加载模型
from sklearn import svm
from sklearn import linear_model
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression,LinearRegressiondef split_data(data_list, y_list, ratio=0.30):'''按照指定的比例,划分样本数据集ratio: 测试数据的比率'''X_train, X_test, y_train, y_test = train_test_split(data_list, y_list, test_size=ratio, random_state=42)print '--------------------------------data shape-----------------------------------'print len(X_train), len(y_train)print len(X_test), len(y_test)return X_train, X_test, y_train, y_testdef regressionModels():'''回归模型使用'''#波士顿房价数据boston=load_boston()data=boston.datatarget=boston.targetprint data.shapeprint target.shapeX_train, X_test, y_train, y_test=split_data(data,target)model=LinearRegression()model.fit(X_train,y_train)print u"系数矩阵:"print model.coef_.tolist()print u"截距"print model.intercept_ print '-----------------------------------------------------------------'# 糖尿病数据集diabetes=load_diabetes()data=diabetes.datatarget=diabetes.targetprint data.shapeprint target.shapeX_train, X_test, y_train, y_test=split_data(data,target)model=LinearRegression()model.fit(X_train,y_train)print u"系数矩阵:"print model.coef_.tolist()print u"截距"print model.intercept_print '-----------------------------------------------------------------'linnerud=load_linnerud()data=linnerud.datatarget=linnerud.targetprint data.shapeprint target.shapeX_train, X_test, y_train, y_test=split_data(data,target)model=LinearRegression()model.fit(X_train,y_train)print u"系数矩阵:"print model.coef_.tolist()print u"截距"print model.intercept_def classificationModels():'''分类模型使用'''#鸢尾花数据集iris=load_iris()data=iris.datatarget=iris.targetprint data.shapeprint target.shapeX_train, X_test, y_train, y_test=split_data(data,target)model=svm.SVC()model.fit(data,target)y_predict=model.predict(X_test)print "Accuracy:"print accuracy_score(y_test,y_predict)if __name__=='__main__':regressionModels()classificationModels()

上述代码在python2.7环境下测试通过,下面是结果输出:

#回归结果输出
(506L, 13L)
(506L,)
--------------------------------data shape-----------------------------------
354 354
152 152
系数矩阵:
[-0.13347010285294442, 0.03580891359322994, 0.04952264522005112, 3.119835116285431, -15.417060895306475, 4.057199231645387, -0.010820835184929944, -1.3859982431608757, 0.24272733982224273, -0.008702234365661983, -0.9106852081102892, 0.011794115892572796, -0.547113312823961]
截距
31.63108403569312
-----------------------------------------------------------------
(442L, 10L)
(442L,)
--------------------------------data shape-----------------------------------
309 309
133 133
系数矩阵:
[29.250345824146294, -261.70768052669956, 546.2973726341081, 388.4007725749296, -901.9533870552892, 506.76114900102954, 121.14845947917183, 288.0293249509, 659.2713384575223, 41.375369011084985]
截距
151.00818273080338
-----------------------------------------------------------------
(20L, 3L)
(20L, 3L)
--------------------------------data shape-----------------------------------
14 14
6 6
系数矩阵:
[[0.30287324212545036, -0.37960681782019234, 0.16074123821975367], [-0.09726556450063326, -0.047093687917992795, 0.027083148889626204], [-0.5869461483881073, 0.053272106843233316, -0.004283316055441206]]
截距#分类结果输出
[213.69337737  41.05782266  54.38303224]
(150L, 4L)
(150L,)
--------------------------------data shape-----------------------------------
105 105
45 45
Accuracy:
1.0

欢迎交流学习!

sklearn 学习实践之——基于自带数据集(波士顿房价、鸢尾花、糖尿病等)构建分类、回归模型相关推荐

  1. [深度学习-实践]GAN基于手写体Mnist数据集生成新图片

    系列文章目录 深度学习GAN(一)之简单介绍 深度学习GAN(二)之基于CIFAR10数据集的例子 深度学习GAN(三)之基于手写体Mnist数据集的例子 深度学习GAN(四)之PIX2PIX GAN ...

  2. Python使用sklearn构建lasso回归模型并指定样本权重:即构建带样本权重(sample_weight)的回归模型

    Python使用sklearn构建lasso回归模型并指定样本权重:即构建带样本权重(sample_weight)的回归模型 目录

  3. Python使用sklearn构建ElasticNet回归模型并指定样本权重:即构建带样本权重(sample_weight)的回归模型

    Python使用sklearn构建ElasticNet回归模型并指定样本权重:即构建带样本权重(sample_weight)的回归模型 目录

  4. R语言构建ElasticNet回归模型实战:基于mtcars数据集

    R语言构建ElasticNet回归模型实战:基于mtcars数据集 目录 R语言构建ElasticNet回归模型实战:基于mtcars数据集 #ElasticNet回归

  5. R语言survival包coxph函数构建cox回归模型、ggrisk包ggrisk函数可视化Cox回归的风险评分图、使用风险得分的中位数计算最佳截断值cutoff(基于LIRI基因数据集)

    R语言survival包coxph函数构建cox回归模型.ggrisk包ggrisk函数可视化Cox回归的风险评分图.使用风险得分的中位数计算最佳截断值cutoff(基于LIRI基因数据集) 目录

  6. ML之Xgboost:利用Xgboost模型(7f-CrVa+网格搜索调参)对数据集(比马印第安人糖尿病)进行二分类预测

    ML之Xgboost:利用Xgboost模型(7f-CrVa+网格搜索调参)对数据集(比马印第安人糖尿病)进行二分类预测 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 grid_s ...

  7. R语言glm拟合logistic回归模型实战:基于glm构建逻辑回归模型及模型系数统计显著性分析、每个预测因子对响应变量的贡献

    R语言glm拟合logistic回归模型实战:基于glm构建逻辑回归模型及模型系数统计显著性分析.每个预测因子对响应变量的贡献 目录

  8. R语言构建logistic回归模型并评估模型:构建基于混淆矩阵计算分类评估指标的自定义函数、阳性样本比例(垃圾邮件比例)变化对应的分类器性能的变化、基于数据阳性样本比例选择合适的分类评估指标

    R语言构建logistic回归模型并评估模型:构建基于混淆矩阵计算分类评估指标的自定义函数.阳性样本比例(垃圾邮件比例)变化对应的分类器性能的变化.基于数据阳性样本比例选择合适的分类评估指标 目录

  9. R语言构建logistic回归模型并评估模型:计算混淆矩阵、并基于混淆矩阵计算Accuray、Precision、Recall(sensitivity)、F1、Specificity指标

    R语言构建logistic回归模型并评估模型:计算混淆矩阵.并基于混淆矩阵计算Accuray.Precision.Recall(sensitivity).F1.Specificity指标 目录

  10. R语言基于glmnet构建Logistic回归模型使用L1正则化并可视化系数及最佳lambda值

    R语言基于glmnet构建Logistic回归模型使用L1正则化并可视化系数及最佳lambda值 Glmnet主要用于拟合广义线性模型.筛选可以使loss达到最小的正则化参数lambda.该算法非常快 ...

最新文章

  1. 如何用zendstudio新建一个PHP工程
  2. C++设计模式 之 “组件协作”模式:Template Method、Strategy、Observer
  3. ubuntu14.04连接网络 No valid active connections found!
  4. .Net 程序员走向高端必读书单汇总
  5. hibernate的inverse用法
  6. 退出循环:break 跳过当前的这次循环,直接开始下一次循环:continue
  7. 用PHP写出显示客户端IP与服务器IP的代码
  8. 字符串:你看的懂的KMP算法(带验证)
  9. new关键字和newInstance()方法的区别?Class.forName()
  10. SSH连接慢与反向解析(转)
  11. 使用networkx来生成网络科学里面三种常见的网络
  12. 开源,自由,免费, 商业,收费,共享. 这些都不矛盾. 细数网络发展中的免费与收费....
  13. STL总结之list
  14. Java-密钥keytool及KeyStore的使用
  15. 用nvidia-docker跑深度学习模型
  16. python使用pip
  17. 懒惰的牛(差分) + 金发姑娘和 N 头牛(差分) + 贝茜放慢脚步(二路排序)(归并排序)
  18. 半导体初创企业中的RISC-V
  19. Scrapy Tutorial
  20. 软件项目经理,如何确保项目管理三大目标(质量、进度、成本)的达成?

热门文章

  1. 从dist到es:发一个NPM库,我蜕了一层皮
  2. shell日期加减及数组循环
  3. APP开发难吗?澳大利亚10岁儿童已开发5个手机App
  4. 10亿级流数据交互查询,为什么抛弃MySQL选择VoltDB?
  5. linux下mysql5.7以上my.cnf配置文件配置
  6. 对String值不可变的理解以及String类型的引用传递问题
  7. Git最基本入门,只是个感想总结啊啊啊不要搜到我0.0
  8. 理解 Python 中的线程
  9. JS规则 是非颠倒(逻辑非操作符)!是逻辑非操作符,也就是不是的意思,非真即假,非假即真...
  10. 清除数据库中大于10W行的垃圾历史数据