Scikit-Learn是基于python的机器学习模块,基于BSD开源许可证。这个项目最早由DavidCournapeau 在2007 年发起的,目前也是由社区自愿者进行维护。

Scikit-Learn的官方网站是http://scikit-learn.org/stable/,在上面可以找到相关的Scikit-Learn的资源,模块下载,文档,例程等等。

Scikit-Learn的安装需要numpy,scipy,matplotlib等模块,windows用户可以到

http://www.lfd.uci.edu/~gohlke/pythonlibs直接下载编译好的安装包以及依赖,也可以到这个网站下载http://sourceforge.jp/projects/sfnet_scikit-learn/

scikit-learn的基本功能主要被分为六个部分,分类,回归,聚类,数据降维,模型选择,数据预处理,具体可以参考官方网站上的文档。

对于具体的机器学习问题,通常可以分为三个步骤,数据准备与预处理,模型选择与训练,模型验证与参数调优,这里以逻辑回归模型为例说明。

scikit-learn支持多种格式的数据,包括经典的iris数据,LibSVM格式数据等等。为了方便起见,推荐使用LibSVM格式的数据,详细见LibSVM的官网。

from sklearn.datasets importload_svmlight_file,导入这个模块就可以加载LibSVM模块的数据,

t_X,t_y=load_svmlight_file("filename")

机器学习模型也要导入相应的模块,逻辑回归模型在下面的模块中。

from sklearn.linear_modelimport LogisticRegression

regressionFunc =LogisticRegression(C=10, penalty='l2', tol=0.0001)

train_sco=regressionFunc.fit(train_X,train_y).score(train_X,train_y)

test_sco=regressionFunc.score(test_X,test_y)

就可以完成模型的训练和测试了。

为了选择更好地模型可以进行交叉实验,或者使用贪心算法进行参数调优。

导入如下模块就可以,

CV:

from sklearn importcross_validation

X_train_m, X_test_m,y_train_m, y_test_m = cross_validation.train_test_split(t_X,t_y, test_size=0.5,random_state=seed_i)

regressionFunc_2.fit(X_train_m,y_train_m)

sco=regressionFunc_2.score(X_test_m,y_test_m, sample_weight=None)

GridSearch:

from sklearn.grid_searchimport GridSearchCV

tuned_parameters =[{'penalty': ['l1'], 'tol': [1e-3, 1e-4],

'C': [1, 10, 100, 1000]},

{'penalty': ['l2'], 'tol':[1e-3, 1e-4],

'C': [1, 10, 100, 1000]}]

clf =GridSearchCV(LogisticRegression(), tuned_parameters, cv=5, scoring=['precision','recall'])

print(clf.best_estimator_)

当然可以利用matplotlib绘制学习曲线,需要导入相应模块如下:

from sklearn.learning_curveimport learning_curve,validation_curve

核心代码如下,具体参见Scikit-Learn的官方文档:

rain_sizes, train_scores,test_scores = learning_curve(

estimator, X, y, cv=cv, n_jobs=n_jobs,train_sizes=train_sizes)

train_scores, test_scores =validation_curve(

estimator, X, y, param_name,param_range,

cv, scoring, n_jobs)

当然,Scikit-Learn中的机器学习模型非常丰富,包括SVM,决策树,GBDT,KNN等等,可以根据问题的类型选择合适的模型,更多内容请参阅官方文档。

python中Scikit-Learn机器学习模块的更多相关文章

  1. Python中os和shutil模块实用方法集…

    Python中os和shutil模块实用方法集锦 类型:转载 时间:2014-05-13 这篇文章主要介绍了Python中os和shutil模块实用方法集锦,需要的朋友可以参考下 复制代码代码如下: ...

  2. Python中os和shutil模块实用方法集锦

    Python中os和shutil模块实用方法集锦 类型:转载 时间:2014-05-13 这篇文章主要介绍了Python中os和shutil模块实用方法集锦,需要的朋友可以参考下 复制代码代码如下: ...

  3. python中根据字符串导入模块module

    python中根据字符串导入模块module 需要导入importlib,使用其中的import_module方法 import importlib modname = 'datetime' date ...

  4. python中的第三方日志模块logging

    基本上每个系统都有自己的日志系统,可以使自己写的,也可以是第三方的.下面来简单介绍一下python中第三方的日志模块,入手还是比较简单的,但是也很容易给自己埋雷. 下面是我参考的资料链接 入手demo ...

  5. Python中xlrd和xlwt模块使用方法 (python对excel文件的操作)

    本文主要介绍可操作excel文件的xlrd.xlwt模块.其中xlrd模块实现对excel文件内容读取,xlwt模块实现对excel文件的写入. 安装xlrd和xlwt模块 xlrd和xlwt模块不是 ...

  6. python中time、datetime模块的使用

    目录 python中time.datetime模块的使用 1.前言 2.time模块 1.时间格式转换图 2.常用方法 3.datetime模块 python中time.datetime模块的使用 1 ...

  7. python中的logging日志模块

    日志是程序不可或缺的一部分.它可以记录程序的运行情况,帮助我们更便捷地发现问题,而python中的logging日志模块给我们提供了这个机会. logging给我们提供了五种函数用来输出日志:debu ...

  8. Python中好用的模块们

    目录 Python中好用的模块们 datetime模块 subprocess模块 matplotlib折线图 importlib模块 Python中好用的模块们 datetime模块 ​ 相信我们都使 ...

  9. python中常⽤的excel模块库

    python中常用的excel模块库&安装方法 openpyxl openpyxl是⼀个Python库,用于读取/写⼊Excel 2010 xlsx / xlsm / xltx / xltm⽂ ...

  10. Python中time和datetime模块的简单用法

    python中与时间相关的一个模块是time模块,datetime模块可以看为是time模块的高级封装. time模块中经常用到的有一下几个方法: time()用来获取时间戳,表示的结果为从1970年 ...

随机推荐

  1. whether the computers in a cluster share access to the same disks

    COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION In the literature, cl ...

  2. Raspberry PI B+ debian + wifi 网络设置

    # file /etc/network/interfaces auto lo iface lo inet loopback #auto eth0 #allow-hotplug eth0 #iface ...

  3. 7.2.12. MySQL如何优化ORDER BY

    在某些情况中,MySQL可以使用一个索引来满足ORDER BY子句,而不需要额外的排序. 即使ORDER BY不确切匹配索引,只要WHERE子句中的所有未使用的索引部分和所有额外的ORDER BY 列 ...

  4. [转]Android SHA1与Package获取方式

    转自高德地图LBS Android SHA1与Package获取方式 获取应用包名 打开Android 应用工程的 AndroidManifest.xml配置文件,package 属性所对应的内容为应 ...

  5. Objective-C 编码建议

    Objective-C 是 C 语言的扩展,增加了动态类型和面对对象的特性.它被设计成具有易读易用的,支持复杂的面向对象设计的编程语言.它是 Mac OS X 以及 iPhone 的主要开发语言. C ...

  6. Python之路-python(rabbitmq、redis)

    一.RabbitMQ队列 安装python rabbitMQ module pip install pika or easy_install pika or 源码 https://pypi.pytho ...

  7. Adding Swagger to Web API project

    Adding Swagger to Web API project. All source code for this series can be found here. When you creat ...

  8. windows环境同时连多个openvpn配置

    根据同事的经验分享:   环境: os:windows7 vpn: openvpn5   1. 进入"设备管理器" 2. 选择"操作" —> " ...

  9. Java Servlet(九):转发请求与重定向请求区别

    转发: <% pageContext.setAttribute("pageContextAttr", "pageContextAttribute"); r ...

  10. 【转】[退役]纪念我的ACM——headacher@XDU

    转自:http://hi.baidu.com/headacher/item/5a2ce1d50609091b20e25022 退役了,是时候总结一下我ACM的生涯了.虽然很舍不得,但这段回忆很值得纪念 ...