预测鲍鱼年龄

前言

  线性回归是监督学习的一个方向,用来预测连续数值型数据。比如房价预测、销量预测等等。

  • 优点:计算简单,易于理解
  • 缺点:只使用与线性数据,对于非线性数据使用非线性回归模型
  • 使用条件:连续的数值型数据

实战:预测鲍鱼年龄

1.数据源

  本文使用的数据源是从UCI数据库中获取。UCI数据库是个常用的标准测试数据库。
下载地址:https://archive.ics.uci.edu/ml/datasets/Abalone

点击 Data Folder 进行下载

其中abalone.data是数据源,abalone.names是对数据的解释说明,包含列名、含义等等。可使用记事本打开。这里将其转为.txt格式

2.数据处理

1.读取数据

# 引包
[1]:import pandas as pdimport numpy as np# 读取数据
[2]:data = pd.read_table("abalone.txt",sep=",",header=None)data.columns = ["Sex","Length","Diameter continuous","Height","Whole weight","Shucked weight","Viscera weight","Shell weight","Rings"]data.head()

2. 数据处理

对性别转为数值类型,“M”为1,“F”为-1,“|”为0

# 对性别转为数值类型,“M”为1,“F”为-1,“|”为0
[4]:def tran(x):if x == "M":return 1elif x == "F":return -1else:return 0
[5]:data.Sex = data.Sex.apply(tran)[6]:data.shape
[6]:(4177, 9)

3.建模

1.引包

# 将数据矩阵随机划分训练集和测试集
from sklearn.model_selection import train_test_split
# 线性回归模型
from sklearn.linear_model import LinearRegression
# 画图
import plotly
import plotly.graph_objs as go
# 评估模型准确率
from sklearn import metrics

2.查看数据

这里使用三个属性来初步查看数据

fig1 = go.Scatter3d(x=data['Length'],y=data['Height'],z=data['Whole weight'],marker=dict(opacity=0.9,reversescale=True,colorscale='Blues',size=5),line=dict (width=0.02),mode='markers')mylayout = go.Layout(scene=dict(xaxis=dict( title="curb-weight"),yaxis=dict( title="horsepower"),zaxis=dict(title="price")),)plotly.offline.plot({"data": [fig1],"layout": mylayout},auto_open=True,filename=("3DPlot.html"))

3.建模

# 划分训练集和数据集
[8]:X_train,X_test,Y_train,Y_test = train_test_split(data.iloc[:,0:-1],data.iloc[:,-1],test_size=0.3,random_state=10)X_train.shape
[8]:(2923, 8)# 建模
[9]:model = LinearRegression()model.fit(X_train,Y_train)
[10]:predict_result = model.predict(X_test)

4.结果对比

拿实际数据的结果前五个和预测结果前五个进行对比:

[11]:predict_result[:5]
[11]:array([ 7.8554181 , 10.87956598,  9.89345623,  6.64893993,  8.99769228])[12]:Y_test[:5].values
[12]:array([ 7, 10,  8,  9, 10], dtype=int64)

5.模型评估

这里分别使用回归评估指标MSE(均方误差),RMSE(均方根误差),R-Squared(准确度)来进行评估。

[13]:mse = metrics.mean_squared_error(Y_test,predict_result)mse
[13]:4.926650489974809[14]:rmse = np.sqrt(mse)rmse
[14]:2.2196059312352743[15]:r2 = metrics.r2_score(Y_test,predict_result)r2
[15]:0.5298367786705702

4.总结

  可以看出模型质量并不高,并不能达到我们想要的预测结果。所以该数据源不能使用简单的线性回归模型来进行预测。本文只是对sklearn中的线性回归模型通过实例进行使用说明。以后可以使用加权线性回归进行处理。

未完待续。。。

线性回归实例-----预测鲍鱼年龄相关推荐

  1. 回归分析及实际案例:预测鲍鱼年龄

    上一篇文章:线性回归(Linear regression)算法 引入: 1.线性回归: 算法的优点: 结果易于理解,计算不复杂 缺点:对非线性数据拟合不好 目标:平方误差和最小  求解(对参数w求导等 ...

  2. 线性回归实战---Abalone鲍鱼年龄预测

    线性回归实现Abalone鲍鱼年龄预测 文章目录 线性回归实现Abalone鲍鱼年龄预测 一.环境准备 数据集简介 二.线性回归基础知识 什么是线性回归? "最小二乘法" 求解线性 ...

  3. 《机器学习实战》8.2 线性回归基础篇之预测鲍鱼年龄

    <机器学习实战>8.2 线性回归基础篇之预测鲍鱼年龄 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多人工智能.机器学习干货 csdn:https://blo ...

  4. 回归综合案例——利用回归模型预测鲍鱼年龄

    回归综合案例--利用回归模型预测鲍鱼年龄 1 数据集探索性分析 首先将鲍鱼数据集abalone_dataset.csv读取为pandas的DataFrame格式. import pandas as p ...

  5. 鲍鱼数据集案例分析-预测鲍鱼年龄(线性回归/梯度下降法实操)

    数据集来源UCI Machine Learning Repository: Abalone Data Set 目录 一.数据集探索性分析 二.鲍鱼数据预处理 1.对sex特征进行OneHot编码,便于 ...

  6. 梯度下降法实现线性回归, 实例---预测波士顿房价

    本文先手动实现一个线性回归模型, 然后用sklearn的线性回归模型作对比 import pandas as pd df = pd.read_csv('house_data.csv') #数据集可到网 ...

  7. 基于Python的机器学习之预测鲍鱼年龄数据集

    用于训练的数据集: 1.000000    0.067732    3.176513 1.000000    0.427810    3.816464 1.000000    0.995731     ...

  8. 使用线性回归,岭回归,Lasso回归预测鲍鱼年龄

    实验目的 掌握数据预处理方法 掌握线性回归预测基本原理与实现. 实验问题背景 鲍鱼的年龄可以通过鲍鱼壳的"环数"来判断,但是获取这个"环数"是十分耗时的,需要锯 ...

  9. 十一、加权线性回归案例:预测鲍鱼的年龄

    加权线性回归案例:预测鲍鱼的年龄 点击文章标题即可获取源代码和笔记 数据集:https://download.csdn.net/download/weixin_44827418/12553408 1. ...

最新文章

  1. golang中文文档_Golang 标准库 限流器 time/rate 设计与实现
  2. SQL Server各种日期计算方法
  3. 【Qt】错误GL/gl.h: No such file or directory的解决方法(以及cannot find -lGL解决方法)
  4. vue-router之路由属性配置说明(十)
  5. 根据选择计算Mask值
  6. http://blog.sina.com.cn/s/blog_6a01140c0100wimi.html
  7. 【转】数据库一对一、一对多、多对多关系
  8. QAM的符号能量及比特能量
  9. 禁用deepin的搜狗输入法简繁切换快捷键
  10. C语言miller rabin算法,浅谈miller_rabin算法和pollard_rho算法
  11. 机器人香囊_中山街道仪凤街社区开展“能手包粽子 巧手绣香包”欢度端午节活动...
  12. 如何完整保存离线网页
  13. 我们需要培养职业化的工作习惯
  14. 大数据学习路线(完整详细版)
  15. C++各大有名库的介绍(一)
  16. Linux下nginx完全卸载删除+安装以及环境配置
  17. 专科入行软件测试可行么
  18. 百度语音识别java教程,Java实现的百度语音识别功能示例
  19. 使用Spring Boot Thin Launcher 打包Spring Boot项目,jar包瘦身
  20. 这个发热鞋垫厉害了,有它冬天再也不怕脚冷

热门文章

  1. 亿道信息丨12.2英寸二合一笔记本丨加固型笔记本丨三防笔记本
  2. JAVA Timer()实现可重置计时器
  3. vue 集成 sweetalert2 提示组件
  4. 伽罗网站服务器,伽罗首件出冰矛,究竟是“黑科技”还是“坑”?原来我们都错了...
  5. 一个命令解密Bitlocker
  6. 股价崩盘指标表(2010-2021年)
  7. (一)JasperReport介绍
  8. 树莓派有线网络设置_Adafruit的树莓派教程:网络设置
  9. 459. 重复的子字符串-KMP算法
  10. 简笔画教程——设计简宝玉+简黛玉(干货)