pyspark RandomForestRegressor 随机森林回归

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Fri Jun  8 09:27:08 2018

@author: luogan
"""

from pyspark.ml import Pipeline
from pyspark.ml.regression import RandomForestRegressor
from pyspark.ml.feature import VectorIndexer
from pyspark.ml.evaluation import RegressionEvaluator

from pyspark.sql import SparkSession

spark= SparkSession                .builder                 .appName("dataFrame")                 .getOrCreate()

# Load and parse the data file, converting it to a DataFrame.
data = spark.read.format("libsvm").load("/home/luogan/lg/softinstall/spark-2.2.0-bin-hadoop2.7/data/mllib/sample_libsvm_data.txt")

# Automatically identify categorical features, and index them.
# Set maxCategories so features with > 4 distinct values are treated as continuous.
featureIndexer =    VectorIndexer(inputCol="features", outputCol="indexedFeatures", maxCategories=4).fit(data)

# Split the data into training and test sets (30% held out for testing)
(trainingData, testData) = data.randomSplit([0.7, 0.3])

# Train a RandomForest model.
rf = RandomForestRegressor(featuresCol="indexedFeatures")

# Chain indexer and forest in a Pipeline
pipeline = Pipeline(stages=[featureIndexer, rf])

# Train model.  This also runs the indexer.
model = pipeline.fit(trainingData)

# Make predictions.
predictions = model.transform(testData)

# Select example rows to display.
predictions.select("prediction", "label", "features").show(5)

# Select (prediction, true label) and compute test error
evaluator = RegressionEvaluator(
    labelCol="label", predictionCol="prediction", metricName="rmse")
rmse = evaluator.evaluate(predictions)
print("Root Mean Squared Error (RMSE) on test data = %g" % rmse)

rfModel = model.stages[1]
print(rfModel)  # summary only

 结果:

+----------+-----+--------------------+
|prediction|label|            features|
+----------+-----+--------------------+
|       0.0|  0.0|(692,[95,96,97,12...|
|       0.3|  0.0|(692,[100,101,102...|
|       0.0|  0.0|(692,[123,124,125...|
|      0.05|  0.0|(692,[124,125,126...|
|       0.0|  0.0|(692,[124,125,126...|
+----------+-----+--------------------+
only showing top 5 rows

Root Mean Squared Error (RMSE) on test data = 0.127949
RandomForestRegressionModel (uid=RandomForestRegressor_4acc9ab165e4f84f7169) with 20 trees

  

原文:https://blog.csdn.net/luoganttcc/article/details/80618336

PySpark 分类模型训练 参考:

https://blog.csdn.net/u013719780/article/details/51792097

原文地址:https://www.cnblogs.com/Allen-rg/p/10046583.html

时间: 2024-11-05 22:03:48

pyspark RandomForestRegressor 随机森林回归的相关文章

基于UCI数据集Condition Based Maintenance of Naval Propulsion Plants的随机森林回归

数据集参考文献:[1] A. Coraddu, L. Oneto, A. Ghio, S. Savio, D. Anguita, M. Figari, Machine Learning Approaches for Improving Condition?Based Maintenance of Naval Propulsion Plants, Journal of Engineering for the Maritime Environment, 2014, DOI: 10.1177/1475

【火炉炼AI】机器学习007-用随机森林构建共享单车需求预测模型

[火炉炼AI]机器学习007-用随机森林构建共享单车需求预测模型 (本文所使用的Python库和版本号: Python 3.5, Numpy 1.14, scikit-learn 0.19, matplotlib 2.2 ) 共享单车是最近几年才发展起来的一种便民交通工具,基本上是我等屌丝上班,下班,相亲,泡妞必备神器.本项目拟使用随机森林回归器构建共享单车需求预测模型,从而查看各种不同的条件下,共享单车的需求量. 1. 准备数据集 本次使用的数据集来源于加利福尼亚大学欧文分校(UCI)大学的公

sklearn之随机森林

''' 集合算法: 1.正向激励 2.自助聚合:每次从总样本矩阵中以有放回抽样的方式随机抽取部分样本构建决策树,这样形成多棵包含不同训练样本的决策树, 以削弱某些强势样本对模型预测结果的影响,提高模型的泛化特性. 3.随机森林:在自助聚合的基础上,每次构建决策树模型时,不仅随机选择部分样本,而且还随机选择部分特征,这样的集合算法, 不仅规避了强势样本对预测结果的影响,而且也削弱了强势特征的影响,使模型的预测能力更加泛化.(中庸-->真值) 随机森林相关API: import sklearn.en

Ensemble methods 之 Random Forest(随机森林)(收藏)

1. 是什么 如前面所说,决策树有时候会出现过拟合(overfit)的问题,越强大的决策树越可能出现过拟合,但是如果几个模型或者一个模型的几个参数组合起来,就很容易弥补这种问题. 所以,随机森林就是一种ensemble方法中的bagging方法,用原始数据进行训练至完全分裂最后得到多个决策树,对新的数据的预测就是对所有的决策树取平均值来进行预测. 2. 关键概念 采样.样本数量为N,采样数量也为N,但是采取的是有放回的采样(bootstrap). 训练.决策树完全分裂至所有的叶子节点,不做各种形

吴裕雄 python 机器学习——集成学习随机森林RandomForestRegressor回归模型

import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,ensemble from sklearn.model_selection import train_test_split def load_data_regression(): ''' 加载用于回归问题的数据集 ''' #使用 scikit-learn 自带的一个糖尿病病人的数据集 diabetes = datasets.load_di

随机森林(分类与回归)

随机森林(可用于分类和回归) 随机森林主要应用于回归和分类. 随机森林在运算量没有显著提高的前提下提高了预测精度. 1.简介 随机森林由多棵决策树构成,且森林中的每一棵决策树之间没有关联,模型的最终输出由森林中的每一棵决策树共同决定. 处理分类问题时,对于测试样本,森林中每棵决策树会给出最终类别,最后综合考虑森林内每一棵决策树的输出类别,以 投票方式来决定测试样本的类别:处理回归问题时,则以每棵决策树输出的均值为最终结果. 2.随机森林的随机性 体现在两个方面: Ⅰ:样本的随机性,从训练集中随机

浅谈对机器学习算法的一些认识(决策树,SVM,knn最近邻,随机森林,朴素贝叶斯、逻辑回归)

一.决策树 定下一个最初的质点,从该点出发.分叉.(由于最初质点有可能落在边界值上,此时有可能会出现过拟合的问题. 二.SVM  svm是除深度学习在深度学习出现之前最好的分类算法了.它的特征如下: (1)它既可应用于线性(回归问题)分类,也可应用于非线性分类; (2)通过调节核函数参数的设置,可将数据集映射到多维平面上,对其细粒度化,从而使它的特征从二维变成多维,将在二维上线性不可分的问题转化为在多维上线性可  分的问题,最后再寻找一个最优切割平面(相当于在决策数基础上再寻找一个最优解),因此

机器学习第一步——用逻辑回归及随机森林实现泰坦尼克号的生存预测

1.实验背景 本次实验是Kaggle上的一个入门比赛——Titanic: Machine Learning from Disaster.比赛选择了泰坦尼克号海难作为背景,并提供了样本数据及测试数据,要求我们根据样本数据内容建立一个预测模型,对于测试数据中每个人是否获救做个预测.样本数据包括891条乘客信息及获救情况,测试数据有418条乘客信息.样本数据的样例如下: Passenger:乘客唯一识别id Survived:是否存活,0为否,1为是 Pclass:船舱等级,1.2.3等 Name:姓

python实现随机森林、逻辑回归和朴素贝叶斯的新闻文本分类

实现本文的文本数据可以在THUCTC下载也可以自己手动爬虫生成, 本文主要参考:https://blog.csdn.net/hao5335156/article/details/82716923 nb表示朴素贝叶斯 rf表示随机森林 lg表示逻辑回归 初学者(我)通过本程序的学习可以巩固python基础,学会python文本的处理,和分类器的调用.方便接下来的机器学习的学习. 各个参数直观的含义: # -*- coding: utf-8 -*- """ Created on