随机森林学习-sklearn
随机森林的Python实现 (RandomForestClassifier)

# -*- coding: utf- -*-
"""
RandomForestClassifier
skleran 的随机森林回归模型,应用流程。
.源数据随机的切分:%作为训练数据 %最为测试数据
.训练数据中的因变量(分类变量)处理成数字形式
.设定参数,训练/fit
.对测试数据,预测/predict结果y_pre
.对预测数据y列,y_pre列,生成混淆矩阵,显示分类/预测效果
"""
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
import pandas as pd
import numpy as np iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names) #合并 自变量 和 因变量
df['is_train'] = np.random.uniform(, , len(df)) <= . #相当于随机抽取了75%作为训练数据
df['species'] = pd.Categorical.from_codes(iris.target, iris.target_names) #将数字类别转为文字类别
df.head() train, test = df[df['is_train']==True], df[df['is_train']==False] #拆分训练集和测试集 features = df.columns[:] # 前4个指标 为自变量
clf = RandomForestClassifier(n_jobs=) # n_jobs=2是线程数
y, _ = pd.factorize(train['species']) # 将文字类别 转为数字类别。一种序列化方法。第一参数是序列化后结果,第二个时参考
clf.fit(train[features], y) #训练过程 preds = iris.target_names[clf.predict(test[features])] # 获取测试数据预测结果
pd.crosstab(test['species'], preds, rownames=['actual'], colnames=['preds']) #生成混淆矩阵
#有意思的输出
clf.feature_importances_ # 输出 自变量的总要程度
clf.predict_proba(test[features]) #输出每个测试样本对应几种数据类型的概率值
150个数据,112做训练 38个最测试.
df数据示例-
测试数据,输出结果-
参考:[Machine Learning & Algorithm] 随机森林(Random Forest)
=============================================================================================================
知识点:
对 ‘RandomForestClassifier’ 原文 的 翻译
知识点:
#将数字类别转为文字类别
pd.Categorical.from_codes([0,1,2,1,0,0,1,-1], ['小猫','中猫','大猫'])
#Out[76]:
#[小猫, 中猫, 大猫, 中猫, 小猫, 小猫, 中猫, NaN]
#Categories (3, object): [小猫, 中猫, 大猫]
知识点:
# pd.factorize 用法

从例子中可以看到 pd.factorize() 返回的是一个tuple ,包含连个元素,第二个是源数据中所有数据的类别,当然取出了nan ,第一个是源数据在类别中对应的序号组成的array 看到这里可以发现 和pd.Categorical() 真的是非常像了。
知识点:
Pandas:透视表(pivotTab)和交叉表(crossTab)
知识点:
numpy.random.seed(1) #设定随机种子且仅在下一次随机时有效.
介绍Python-random模块的链接:
==================================================================================================================================================
随机森林学习-sklearn的更多相关文章
- 随机森林学习-2-sklearn
# -*- coding: utf-8 -*- """ RandomForestClassifier skleran的9个模型在3份数据上的使用. 1. 知识点: skl ...
- 随机森林random forest及python实现
引言想通过随机森林来获取数据的主要特征 1.理论根据个体学习器的生成方式,目前的集成学习方法大致可分为两大类,即个体学习器之间存在强依赖关系,必须串行生成的序列化方法,以及个体学习器间不存在强依赖关系 ...
- 100天搞定机器学习|Day33-34 随机森林
前情回顾 机器学习100天|Day1数据预处理 100天搞定机器学习|Day2简单线性回归分析 100天搞定机器学习|Day3多元线性回归 100天搞定机器学习|Day4-6 逻辑回归 100天搞定机 ...
- 04-10 Bagging和随机森林
目录 Bagging算法和随机森林 一.Bagging算法和随机森林学习目标 二.Bagging算法原理回顾 三.Bagging算法流程 3.1 输入 3.2 输出 3.3 流程 四.随机森林详解 4 ...
- 【笔记】随机森林和Extra-Trees
随机森林和Extra-Trees 随机森林 先前说了bagging的方法,其中使用的算法都是决策树算法,对于这样的模型,因为具有很多棵树,而且具备了随机性,那么就可以称为随机森林 在sklearn中封 ...
- 美团店铺评价语言处理以及分类(tfidf,SVM,决策树,随机森林,Knn,ensemble)
第一篇 数据清洗与分析部分 第二篇 可视化部分, 第三篇 朴素贝叶斯文本分类 支持向量机分类 支持向量机 网格搜索 临近法 决策树 随机森林 bagging方法 import pandas as pd ...
- [ML学习笔记] 决策树与随机森林(Decision Tree&Random Forest)
[ML学习笔记] 决策树与随机森林(Decision Tree&Random Forest) 决策树 决策树算法以树状结构表示数据分类的结果.每个决策点实现一个具有离散输出的测试函数,记为分支 ...
- (数据科学学习手札26)随机森林分类器原理详解&Python与R实现
一.简介 作为集成学习中非常著名的方法,随机森林被誉为“代表集成学习技术水平的方法”,由于其简单.容易实现.计算开销小,使得它在现实任务中得到广泛使用,因为其来源于决策树和bagging,决策树我在前 ...
- 大白话5分钟带你走进人工智能-第二十九节集成学习之随机森林随机方式 ,out of bag data及代码(2)
大白话5分钟带你走进人工智能-第二十九节集成学习之随机森林随机方式 ,out of bag data及代码(2) 上一节中我们讲解了随机森林的基本概念,本节的话我们讲解随机森 ...
随机推荐
- jdbc操作数据库(详细)
JDBC是由java编程语言编写的类及接口组成,同时它为程序开发人员提供了一组用于实现对数据库访问的JDBC API,并支持SQL语言.利用JDBC可以将JAVA代码连接到oracle.DB2.SQL ...
- GBDT原理详解
从提升树出发,——>回归提升树.二元分类.多元分类三个GBDT常见算法. 提升树 梯度提升树 回归提升树 二元分类 多元分类 面经 提升树 在说GBDT之前,先说说提升树(boosting tr ...
- 中南大学2018年ACM暑期集训前期训练题集(入门题) Q: Simple Line Editor
数据有毒,一个一个读字符是错,整个字符串读入,一次就A了. 总之,数据总是没有错的,还是对c++了解地不够深刻,还有,在比赛中,一定要有勇气重构代码 错误代码: #include<iostrea ...
- 中南大学2018年ACM暑期集训前期训练题集(入门题) J : A Simple Problem
毒瘤哇!为什么要用long long 啊!!!这个题没有加法操作啊,为什么会爆int啊!!!! 思路: http://www.cnblogs.com/buerdepepeqi/p/9048130.ht ...
- echarts2 饼图处理标签文字过长使之达到指定字数换行的目的
在使用echarts2的过程中,有时会遇到标签文字过长导致显示不完整的问题.例如: 这时候就需要用到 标签里的formatter 回调函数来处理这种情况了. 方式一: formatter : ' { ...
- k8s部署prometheus
https://www.kancloud.cn/huyipow/prometheus/527092 https://songjiayang.gitbooks.io/prometheus/content ...
- GO语言的进阶之路-初探GO语言
GO语言的进阶之路-初探GO语言 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么我们需要一门新语言 Go语言官方自称,之所以开发Go 语言,是因为“近10年来开发程序之难 ...
- Weblogic常见故障常:JDBC Connection Pools【转】
WebLogic Server中数据库连接池是一个经常出问题的地方,总结一下出问题的原因和解决办法. 一.数据库连接泄漏 此类问题一般都是由于开发人员没有正确关闭数据库连接造成的.比如使用完Conne ...
- python安装办法
先我们来安装python 1.首先进入网站下载:点击打开链接(或自己输入网址https://www.python.org/downloads/),进入之后,选择64位下载. 2.下载完成后如下图所示 ...
- SQL Server 2008“备份集中的数据库备份与现有的数据库不同”解决方法
对于SQL Server 2008,有几个地方是要注意的,比方在还原数据库时,不像2000里边将数据库和文件区分的很细, 统一均为文件,这就使还原的数据库文件制定为. bak.那么想还原2000的数据 ...