位置: 编程技术 - 正文

scikit-learn使用笔记与sign prediction简单小结(scikit-learn svr)

编辑:rootadmin

推荐整理分享scikit-learn使用笔记与sign prediction简单小结(scikit-learn svr),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:scikit-learn中文,scikit-learn中文,scikit-learn svr,scikit learn,scikit-learn教程,scikit-learn的用途,scikit learn中文手册,scikit learn,内容如对您有帮助,希望把文章链接给更多的朋友!

经Edwin Chen的推荐,认识了scikit-learn这个非常强大的python机器学习工具包。这个帖子作为笔记。(其实都没有笔记的意义,因为他家文档做的太好了,不过还是为自己记记吧,为以后节省若干分钟)。如果有幸此文被想用scikit-learn的你看见,也还是非常希望你去它们的主页看文档。主页中最值得关注的几个部分:User Guide几乎是machine learning的索引,各种方法如何使用都有,Reference是各个类的用法索引。

S1. 导入数据 大多数数据的格式都是M个N维向量,分为训练集和测试集。所以,知道如何导入向量(矩阵)数据是最为关键的一点。这里要用到numpy来协助。假设数据格式是:

复制代码代码如下:Stock prices indicator1 indicator2 2.0 1.0 .. .. .. . . .

导入代码参考:

复制代码代码如下:import numpy as np f = open("filename.txt") f.readline() # skip the header data = np.loadtxt(f) X = data[:, 1:] # select columns 1 through end y = data[:, 0] # select column 0, the stock price

libsvm格式的数据导入:

复制代码代码如下:>>> from sklearn.datasets import load_svmlight_file >>> X_train, y_train = load_svmlight_file("/path/to/train_dataset.txt") ... >>>X_train.todense()#将稀疏矩阵转化为完整特征矩阵

更多格式数据导入与生成参考:

S2. Supervised Classification 几种常用方法:

Logistic Regression

复制代码代码如下:>>> from sklearn.linear_model import LogisticRegression >>> clf2 = LogisticRegression().fit(X, y) >>> clf2 LogisticRegression(C=1.0, intercept_scaling=1, dual=False, fit_intercept=True, penalty='l2', tol=0.) >>> clf2.predict_proba(X_new) array([[ 9.e-, 9.e-, 1.e-]])

Linear SVM (Linear kernel)

复制代码代码如下:>>> from sklearn.svm import LinearSVC >>> clf = LinearSVC() >>> clf.fit(X, Y) >>> X_new = [[ 5.0, 3.6, 1.3, 0.]] >>> clf.predict(X_new)#reuslt[0] if class label array([0], dtype=int)

SVM (RBF or other kernel)

scikit-learn使用笔记与sign prediction简单小结(scikit-learn svr)

复制代码代码如下:>>> from sklearn import svm >>> clf = svm.SVC() >>> clf.fit(X, Y) SVC(C=1.0, cache_size=, class_weight=None, coef0=0.0, degree=3, gamma=0.0, kernel='rbf', probability=False, shrinking=True, tol=0., verbose=False) >>> clf.predict([[2., 2.]]) array([ 1.])

Naive Bayes (Gaussian likelihood)

复制代码代码如下:from sklearn.naive_bayes import GaussianNB >>> from sklearn import datasets >>> gnb = GaussianNB() >>> gnb = gnb.fit(x, y) >>> gnb.predict(xx)#result[0] is the most likely class label

Decision Tree (classification not regression)

复制代码代码如下:>>> from sklearn import tree >>> clf = tree.DecisionTreeClassifier() >>> clf = clf.fit(X, Y) >>> clf.predict([[2., 2.]]) array([ 1.])

Ensemble (Random Forests, classification not regression)

复制代码代码如下:>>> from sklearn.ensemble import RandomForestClassifier >>> clf = RandomForestClassifier(n_estimators=) >>> clf = clf.fit(X, Y) >>> clf.predict(X_test)

S3. Model Selection (Cross-validation) 手工分training data和testing data当然可以了,但是更方便的方法是自动进行,scikit-learn也有相关的功能,这里记录下cross-validation的代码:

复制代码代码如下:>>> from sklearn import cross_validation >>> from sklearn import svm >>> clf = svm.SVC(kernel='linear', C=1) >>> scores = cross_validation.cross_val_score(clf, iris.data, iris.target, cv=5)#5-fold cv #change metrics >>> from sklearn import metrics >>> cross_validation.cross_val_score(clf, iris.data, iris.target, cv=5, score_func=metrics.f1_score) #f1 score: <a href="

more about cross-validation:

Note: if using LR, clf = LogisticRegression().

S4. Sign Prediction Experiment 数据集,EPINIONS,有user与user之间的trust与distrust关系,以及interaction(对用户评论的有用程度打分)。

Features:网络拓扑feature参考"Predict positive and negative links in online social network",用户交互信息feature。

一共设了3类instances,每类3次训练+测试,训练数据是测试数据的倍,~,个/5/维向量,得出下面一些结论。时间上,GNB最快(所有instance都是2~3秒跑完),DT非常快(有一类instance只用了1秒,其他都要4秒),LR很快(三类instance的时间分别是2秒,5秒,~秒),RF也不慢(一个instance9秒,其他秒),linear kernel的SVM要比LR慢好几倍(所有instance要跑多秒),RBF kernel的SVM比linear SVM要慢+倍到上百倍(第一个instance要分钟,第二个instance跑了近两个小时)。准确度上RF>LR>DT>GNB>SVM(RBF kernel)>SVM(Linear kernel)。GNB和SVM(linear kernel)、SVM(rbf kernel)在第二类instance上差的比较远(~个百分点),LR、DT都差不多,RF确实体现了ENSEMBLE方法的强大,比LR有较为显著的提升(近2~4个百分点)。(注:由于到该文提交为止,RBF版的SVM才跑完一次测试中的两个instance,上面结果仅基于此。另外,我还尝试了SGD等方法,总体上都不是特别理想,就不记了)。在feature的有效性上面,用户交互feature比网络拓扑feature更加有效百分五到百分十。

S5.通用测试源代码 这里是我写的用包括上述算法在内的多种算法的自动分类并fold cross-validation的python代码,只要输入文件保持本文开头所述的格式(且不包含注释信息),即可用多种不同算法测试分类效果。Download.

Linux下安装和部署LXC(内核虚拟化技术)的方法 LinuxContainer容器是一种内核虚拟化技术,简称LXC,是一种轻量级的虚拟化手段,那么LXC要如何安装部署呢?下面小编就给大家介绍下Linux下LXC的安装部署

在Linux虚拟环境下搭建DB2的多分区数据库DPF DPF是DB2的多分区数据库,那么DPF要怎么搭建呢?下面小编就给大家介绍下如何在Linux虚拟化环境搭建DB2数据库DPF,给不知道怎么搭建的朋友做个指导。DB2

Linux系统中在虚拟机上搭建DB2 pureScale的方法 在Linux操作系统中,可在虚拟机上搭建DB2pureScale,那么搭建的步骤是怎么样的呢?DB2pureScale又有什么用呢?下面随小编一起来了解下Linux系统如何在虚拟

标签: scikit-learn svr

本文链接地址:https://www.jiuchutong.com/biancheng/367651.html 转载请保留说明!

上一篇:如何在Linux下设置访问控制列表(ACL)来控制用户的权限(linux系统怎么弄)

下一篇:Linux下安装和部署LXC(内核虚拟化技术)的方法(linux安装与部署)

  • 设备进项税额转出会计分录
  • 筹建期的开办费计入什么科目
  • 其他应付款辅助核算可以设置职员吗
  • 摄影服务属于哪个开票类目
  • 纳税表不得抵扣什么意思
  • 税控盘服务费减免税会计分录
  • 研发费用加计扣除条件
  • 服装企业销售方式
  • 企业所得税职工薪酬扣除
  • 分支机构是否需要进行企业所得税汇算清缴申报
  • 制作原始人类用的工具
  • 公司买了样品又退掉了怎么做分录
  • 企业对固定资产进行计量时应选择的计量属性是
  • 增值税设备抵扣怎么抵扣
  • 固定资产进项可以抵扣的时间
  • 购买烟怎么做账
  • 搞金融的企业
  • 现金支票存根会计要签字吗
  • 通讯费 个税
  • 增值税留抵税额会计科目
  • 委托贷款利息收入需要缴纳增值税么
  • 苹果电脑安装中国银行控件用不了
  • mac怎么禁止开机启动
  • 期末留抵税额可以冲减欠税吗
  • linux 如何查看网卡信息
  • mac如何搜索
  • 电脑安装的软件桌面上没显示
  • 反映企业在一定会计期间经营成果的会计报表
  • 新政府会计制度科目表
  • 股东以房产投资入股,增值税免吗
  • 安全平台无法认证怎么办
  • 建筑业成本率是多少
  • 供热企业收取采暖费标准
  • uniapp vuecli
  • 从上魏斯巴赫山地列车的车站向外看,德国图林根 (© golero/iStock/Getty Images Plus)
  • 精灵烟囱的形态判断
  • 金融企业利息收入增值税
  • 应收挂账太久有什么税务风险
  • 税务申报说明怎么写范文
  • ntpq命令详解
  • 分公司可以开基本账户吗
  • apache druid使用
  • 公司采购一直没走对公付款怎么处理
  • 清单应该盖公章还是财务章
  • 加工费能直接抵税吗
  • 报销借款分录怎么做
  • c语言中使用指针的好处
  • 织梦上传图片大小设置
  • python numpy 删除元素
  • 工商年报股东实缴出资金额能写0吗
  • 研发费用成本化和费用化
  • 个体升一般纳税人的界限
  • mysql命令行工具是什么
  • 开票地址必须和营业执照上一样吗少个字号可以吗
  • 企业给灾区捐款可以抵税吗
  • 金税四期什么时候全国运行
  • 代垫费用开什么发票
  • 企业转让专利需要交什么税
  • 幼儿园收取的生活费免税吗
  • 收到投资款如何申报印花税
  • 净利润递延所得税
  • 房地产开发土地使用税如何计算
  • 利用公式计算填空题
  • mysql设计树形数据库
  • mysql版本信息
  • win8开机提示激活
  • Qq浏览器怎么切换成极速模式
  • win10怎么删除无用文件
  • win builds
  • ext.formpanel
  • jquery的事件处理
  • 贴吧热门评论
  • perl中\s+
  • shell 查找最新文件
  • python打印出none
  • Javascript this 关键字 详解
  • 第一章阎王点卯的小说名字
  • 留学生在美国买房子需要什么条件
  • 电子税务局在线咨询
  • 销售折让怎么开票
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设