(附源码)基于sklearn的多种机器学习模型在降水降尺度中的应用(KNN\LR\RF\Ada\Xg\GBDT)1

简介: (附源码)基于sklearn的多种机器学习模型在降水降尺度中的应用(KNN\LR\RF\Ada\Xg\GBDT)1

最近学习了机器学习, 有一些感触,但是没有时间详细写。这里简单给一下我写的源码(并且我是在jupyter notebook上面做的报告,所以代码格式也是jupyter notebook的,如果你需要移动到pycharm上做修改,需要做一点点微调,这很简单。因为时间,我直接将我在jupyter notebook做报告的代码直接搬过来)。


1. 准备工作

1.1 包

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt  # 数据可视化
import seaborn as sns  # 数据可视化
from sklearn.model_selection import train_test_split  # 数据集划分
from sklearn.preprocessing import StandardScaler, RobustScaler  # 特征值标准化
from sklearn.ensemble import RandomForestRegressor  # 随机森林回归模型
from sklearn.metrics import accuracy_score, mean_squared_error, mean_squared_log_error  # 模型评估

1.2  读取数据

data = pd.read_csv('D:/pycharm_storage/机器学习/项目/绘sir/NTL2012.csv')

1.3 了解数据

1.3.1 了解数据shape

data_shape = data.shape
data.shape

输出结果



说明一共有18003列14行数据

1.3.2 数据的前五行和尾五行

data.head()

输出结果:


data.tail()

输出结果:



1.3.3 检查每一列的唯一值

如果你已经知道你的每一列特征项数据是何种类型(回归\连续的还是离散的),那么你无需进行这一步代码操作。由于我的数据是他人处理的,所以我需要知道数据的基本情况(包括上面的观察数据据)。

dict = {}
for i in list(data.columns):
    dict[i] = data[i].value_counts().shape[0]
pd.DataFrame(dict, index=['唯一值'])

输出结果:


以上数值均为连续值,没有离散值,选用的模型均采用回归算法

1.3.4 统计数据

这里也只是了解数据的诸如平均值,中位数,最大最小值等等基本情况

data.describe()

输出结果:



这里是查看数据的底层情况了。

data.info()

输出结果:



1.3.5 缺失值统计

将0.0值转化为np.nan(即NaN),方便计数

data.replace(0, value=np.nan, inplace=True)  # 
data.isnull().sum()

输出结果:



上面显示的是每一列特征项中0.0(已经修改成了NaN)出现个数,由于除Y、Lat、Lon外的其它特征项出现0.0值是正常现象,所以这里不对0.0值做处理。

所以将NaN转化为0.0值方便后续运算操作。

data.replace(np.nan, value=0.0, inplace=True)
data.isnull().sum()

输出结果:



没有缺失值,不需要做缺失值异常处理


2. 数据可视化与分析(做的一般)

2.1 各个维度比较(pairplot)

sns.pairplot(data, hue='Y')

输出结果:



2.2 各维度与Y的比较

plt.figure(figsize=(72, 25), dpi=180, facecolor='#ffe6e6')  # 
data_cols = list(data.columns)
data_cols.remove('Y')
for i in range(13):
    plt.subplot(13, 2, i + 1)
    sns.violinplot(x='Y', y=data_cols[i], data=data, facecolor='#ffe6e6',palette='Set2')

输出结果:



2.3 相关系数矩阵

corrmat = data.corr()
corrmat

输出结果:



系数矩阵——图

f, ax = plt.subplots(figsize=(12, 9))
sns.heatmap(corrmat, vmax=.8, square=True, cmap='Greens')

输出结果:




目录
相关文章
|
5月前
|
机器学习/深度学习 算法 数据挖掘
机器学习之sklearn基础——一个小案例,sklearn初体验
机器学习之sklearn基础——一个小案例,sklearn初体验
122 6
|
1月前
|
机器学习/深度学习 算法
机器学习入门(三):K近邻算法原理 | KNN算法原理
机器学习入门(三):K近邻算法原理 | KNN算法原理
|
1月前
|
机器学习/深度学习 算法 API
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
|
1月前
|
机器学习/深度学习 算法 数据可视化
【机器学习】决策树------迅速了解其基本思想,Sklearn的决策树API及构建决策树的步骤!!!
【机器学习】决策树------迅速了解其基本思想,Sklearn的决策树API及构建决策树的步骤!!!
|
3月前
|
机器学习/深度学习 数据采集 算法
机器学习到底是什么?附sklearn代码
机器学习到底是什么?附sklearn代码
|
3月前
|
机器学习/深度学习 算法
【机器学习】SVM面试题:简单介绍一下SVM?支持向量机SVM、逻辑回归LR、决策树DT的直观对比和理论对比,该如何选择?SVM为什么采用间隔最大化?为什么要将求解SVM的原始问题转换为其对偶问题?
支持向量机(SVM)的介绍,包括其基本概念、与逻辑回归(LR)和决策树(DT)的直观和理论对比,如何选择这些算法,SVM为何采用间隔最大化,求解SVM时为何转换为对偶问题,核函数的引入原因,以及SVM对缺失数据的敏感性。
71 3
|
3月前
|
机器学习/深度学习 算法
【机器学习】支持向量机SVM、逻辑回归LR、决策树DT的直观对比和理论对比,该如何选择(面试回答)?
文章对支持向量机(SVM)、逻辑回归(LR)和决策树(DT)进行了直观和理论上的对比,并提供了在选择这些算法时的考虑因素,包括模型复杂度、损失函数、数据量需求、对缺失值的敏感度等。
56 1
|
3月前
|
机器学习/深度学习
【机器学习】逻辑回归LR的推导及特性是什么,面试回答?
逻辑回归(LR)的推导和特性的详细解释,包括其作为二分类模型的基本原理、损失函数(对数损失函数),以及决策树的特性,如不需要先验假设、高效性、易解释性、对缺失值的不敏感性,以及对冗余属性的鲁棒性。
40 1
|
3月前
|
机器学习/深度学习 数据采集 算法
如何使用机器学习神器sklearn做特征工程?
如何使用机器学习神器sklearn做特征工程?
|
4月前
|
机器学习/深度学习 数据采集 数据可视化
Sklearn入门指南:构建你的第一个机器学习模型
【7月更文第22天】在数据科学与机器学习领域,Scikit-learn(简称sklearn)是一个广泛使用的Python库,以其简洁的API和丰富的功能集而著称。本指南将引领你从安装到使用sklearn构建你的第一个机器学习模型,以一个简单的线性回归任务为例,逐步深入理解这个强大的工具。
102 2