python-sklearn数据分析-线性回归和支持向量机(SVM)回归预测(实战)

本文介绍了使用Python的sklearn库进行线性回归和支持向量机(SVM)回归预测的实战过程。从数据预处理、特征选择、数据归一化到模型训练,详细讲解每个步骤,包括数据读取、异常值处理、数据可视化等,最终实现回归预测。
摘要由CSDN通过智能技术生成

注:本文是小编学习实战心得分享,欢迎交流讨论!话不多说,直接附上代码和图示说明。

目录

一、分段示例

1.导入必要的库

2.读取数据,查看数据基本信息

3.简单查看有无重复值

4.对列名进行分类,便于后面的操作,其中最后一列为预测标签数据

5.对数据进行初步可视化

6.清除异常值

7.将清洗完毕的数据,放进一个文件中

8.特征选择

9.数据归一化

10.进行训练集与测试集划分

11.线性回归模型训练

12.使用支持向量机(SVM)进行回归预测

二、完整代码


一、分段示例

1.导入必要的库

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import sklearn

2.读取数据,查看数据基本信息

可以看到,该数据文件大小为731*7,具体信息如图所示,并发现没有缺失值

df=pd.read_csv('C:/Users/27812/Desktop/2-day.csv')
print(df.head(5))
print(df.info())#查看后发现没有缺失值
print(df.nunique())#除了前两列,其余每列都有重复值
print(df.describe())#查看数据的描述性信息

3.简单查看有无重复值

print(df[all_colums].nunique())
#提取重复值
print(df[df.duplicated()])#结果发现无重复值

4.对列名进行分类,便于后面的操作,其中最后一列为预测标签数据

x_colums=['temp','atemp','hum','windspeed','casual','registered']
y_colums=['cnt']
all_colums=['temp','atemp','hum','windspeed','casual','registered','cnt']

5.对数据进行初步可视化

分别绘制直方图、散点图以及特征之间的相关表示图,对数据的分布以及特征之间的关系有了初步的了解或判断;同时检测异常值,并通过箱线图可视化。(展示部分图片)

#数据初步可视化
#绘制直方图
def hist(df):
    df.hist(figsize=(30,20))
    plt.show()
    plt.savefig('a.png')
hist(df[all_colums])
#绘制散点图
def scatter(df):
    for i in all_colums[:6]:
         plt.scatter(df[i],df['cnt'])
         plt.xlabel(i)
         plt.ylabel('cnt')
         plt.show()
scatter(df)
#相关系数查看特征与特征,特征与响应的线性关系
def corr_view():
    data_corr=df.corr()
    data_corr=data_corr.abs()
    sns.heatmap(data_corr,annot=True)
    plt.savefig('b.png')
corr_view()
#异常值可视化
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
for i in all_colums:
    f,ax=plt.subplots(figsize=(10,8))
    sns.boxplot(y=i,data=df,ax=ax)
    plt.show()
    plt.savefig('c.png', dpi=500)
#经发现,'hum','windspeed','casual'这三列中有异常值

 

 

 

  • 55
    点赞
  • 491
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 36
    评论
### 回答1: MATLAB SVM预测是一种基于支持向量机SVM)算法的预测方法。这种方法可以用于分类或回归问题的预测。在这种方法中,算法通过将数据映射到高维空间中来寻找一个最佳的超平面,用于将数据划分成两个或多个不同的类别或预测数值。这个超平面应该使得两个或多个类之间的最小距离最大化,从而提高预测的准确性。 MATLAB SVM预测的具体步骤如下: 1. 首先,需要准备并整理好训练数据集和测试数据集。训练数据集中包含了已知类别的数据,测试数据集中只包含特征向量(没有类别)。 2. 接下来,需要对训练数据集进行特征向量的提取和处理。可以采用不同的特征选取算法,比如主成分分析(PCA)等,来提高预测的准确性。 3. 然后,可以通过使用fitcsvm函数进行SVM分类器的训练。在训练时,需要设置不同的参数,比如核函数、正则化参数等,从而优化训练精度等。 4. 最后,使用trainedClassifier.predictFcn函数对测试数据集进行预测,得到测试集中每个特征向量所对应的类别或预测数值。可以通过计算分类器的准确率和召回率等指标来评估预测结果的准确性。 总的来说,MATLAB SVM预测是一种非常有用的机器学习预测方法,可以用于不同的领域,比如金融、生物医学等。 ### 回答2: 支持向量机(Support Vector Machine,SVM)是一种非常常见的分类和回归算法,它基于统计学习理论,采用间隔最大化的策略来构建分类边界或回归函数。MATLAB是支持向量机中最常用的软件之一,拥有完善的支持向量机预测工具箱。 在MATLAB中,我们可以利用svmtrain(训练数据)和svmclassify(预测数据)两个函数来构建SVM模型和进行预测。其中,svmtrain函数可以帮助我们训练SVM分类器或回归模型,svmclassify函数可以帮助我们进行分类或回归预测。下面我们将详细介绍在MATLAB中使用SVM对数据进行预测的步骤。 1. 数据准备 在使用SVM进行预测前,首先需要准备好训练数据和测试数据。训练数据用于训练SVM分类器或回归模型,测试数据用于测试模型的准确性和预测能力。数据可以是文本文件或MATLAB工作区中的变量。 2. 模型参数设定 在训练SVM模型时,需要设定一些参数,如核函数类型、正则化参数、软间隔惩罚系数、分类标签等。这些参数的设定需要根据数据集的特点和需求进行选择和调整。一般来说,可以采用交叉验证法来确定最优的参数组合。 3. 训练SVM模型 使用svmtrain函数训练SVM模型,该函数需要输入训练数据、分类标签和模型参数等信息,输出训练好的SVM模型。训练过程中可以设定不同的核函数类型和模型参数,以获取最优的分类效果。 4. 对测试数据进行预测 使用svmclassify函数对测试数据进行分类或回归预测。该函数需要输入测试数据和训练好的SVM模型等信息,输出预测结果。预测结果可以是分类标签或连续值,根据具体的需求进行选择。 5. 分析和优化模型 分析预测结果和模型参数,根据测试结果和实际需求进行模型优化和调整。可以使用ROC曲线、精确率和召回率等指标来评估模型的准确性和预测能力。同时,还可以通过特征选择和降维等方法来优化数据和模型。 通过以上的步骤,可以在MATLAB中构建和优化SVM模型,实现高效、准确、稳定的分类和回归预测。 ### 回答3: Matlab SVM预测是一种机器学习技术,它通过使用支持向量机算法对数据进行建模和分类。支持向量机是一种二分类算法,它通过找到一个超平面将数据分成两个分类。超平面的选择是基于数据的分类和位置的。 在Matlab中使用SVM进行预测的步骤大致如下: 1. 准备数据集:首先需要准备一个带有标签的训练数据集和一个没有标签的待预测数据集。 2. 特征工程:将训练数据集中的每个特征进行归一化和规范化,以保证它们的重要性权重是相同的。然后,使用matlab的SVM算法库进行分类模型的训练。这可能需要手动调整算法的超参数,以达到最好的性能。 3. 模型评估:评估模型的性能并修正其参数或算法以获得更好的准确度。 4. 预测分类:使用训练好的模型对待预测的数据进行分类预测,以得到一个标签,即分类结果。 从上面的步骤可以看出,使用Matlab SVM预测需要准备数据集、进行特征工程和模型训练,并对模型进行评估和优化。这个过程需要较多的专业知识和实践经验,但在Matlab的支持下,可以很方便地完成预测任务,并得到准确的预测结果。
评论 36
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狂热分子%

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值