#2018-03-23 16:26:20 March Friday the 12 week, the 082 day SZ SSMR
【Python数据挖掘学习笔记】九.回归模型LinearRegression简单分析氧化物数据 1.回归模型及基础知识;2.UCI数据集;3.回归模型简单数据分析。
一. 算法简介-回归模型1.初识回归
在一个回归模型中,我们需要关注或预测的变量叫做因变量(响应变量或结果变量),我们选取的用来解释因变量变化的变量叫做自变量(解释变量或预测变量)。
分类算法用于离散型分布预测,如KNN、决策树、朴素贝叶斯、adaboost、SVM、Logistic回归都是分类算法;回归算法用于连续型分布预测,针对的是数值型的样本,使用回归,可以在给定输入的时候预测出一个数值,这是对分类方法的提升,因为这样可以预测连续型数据而不仅仅是离散的类别标签。回归的目的就是建立一个回归方程用来预测目标值,回归的求解就是求这个回归方程的回归系数。预测的方法即回归系数乘以输入值再全部相加就得到了预测值。
回归最简单的定义:给出一个点集D,用一个函数去拟合这个点集,并且使得点集与拟合函数间的误差最小,如果这个函数曲线是一条直线,那就被称为线性回归,如果曲线是一条二次曲线,就被称为二次回归。
2.线性回归3.求解线性回归
回归常常指线性回归,回归的求解就是多元线性回归方程的求解。假设有连续型值标签(标签值分布为Y)的样本,有X={x1,x2,...,xn}个特征,回归就是求解回归系数θ=θ0, θ1,…,θn。那么,手里有一些X和对应的Y,怎样才能找到θ呢?在回归方程里,求得特征对应的最佳回归系数的方法是最小化误差的平方和。这里的误差是指预测y值和真实y值之间的差值,使用该误差的简单累加将使得正差值和负差值相互抵消,所以采用平方误差(最小二乘法)。平方误差可以写做:3.1 梯度下降法(Gradient Descent)
3.2 普通最小二乘法(Normal Equation)Normal Equation算法也叫做普通最小二乘法(ordinary least squares),其特点是:给定输人矩阵X,如果X T X的逆存在并可以求得的话,就可以直接采用该方法求解。其求解理论也十分简单:既然是是求最小误差平方和,另其导数为0即可得出回归系数。
4.回归模型性能度量
二. 数据集介绍
数据集包括6种类型的玻璃
http://archive.ics.uci.edu/ml/machine-learning-databases/
三. 回归模型分析
回归模型分析代码如下:注意:1) pandas、Matplotlib、seaboard三种不同方法绘制图形,基本类似。2) 代码对应结果不进行详细分析,只提供方法,为提升学生阅读代码能力。#导入玻璃识别数据集
import pandas as pd
glass=pd.read_csv("glass.csv")
#显示前6行数据
print(glass.shape)
print(glass.head(6))
#seaborn画图软件
import seaborn as sns
import matplotlib.pyplot as pltsns.set(font_scale=1.5)
sns.lmplot(x='al', y='ri', data=glass, ci=None)
#利用Pandas画散点图
glass.plot(kind='scatter', x='al', y='ri')
plt.show()#利用matplotlib做等效的散点图
plt.scatter(glass.al, glass.ri)
plt.xlabel('al')
plt.ylabel('ri')#拟合线性回归模型
from sklearn.linear_model import LinearRegression
linreg = LinearRegression()
feature_cols = ['al']
X = glass[feature_cols]
y = glass.ri
linreg.fit(X, y)
plt.show()#对于所有的x值做出预测
glass['ri_pred'] = linreg.predict(X)
print("预测的前六行:")
print(glass.head(6))#用直线表示预测结果
plt.plot(glass.al, glass.ri_pred, color='red')
plt.xlabel('al')
plt.ylabel('Predicted ri')
plt.show()#将直线结果和散点图同时显示出来
plt.scatter(glass.al, glass.ri)
plt.plot(glass.al, glass.ri_pred, color='red')
plt.xlabel('al')
plt.ylabel('ri')
plt.show()#利用相关方法线性预测
linreg.intercept_ + linreg.coef_ * 2
#使用预测方法计算Al = 2的预测
linreg.predict(2)#铝检验系数
ai=zip(feature_cols, linreg.coef_)
print(ai)#使用预测方法计算Al = 3的预测
pre=linreg.predict(3)
print(pre)#检查glass_type
sort=glass.glass_type.value_counts().sort_index()
print(sort)#类型1、2、3的窗户玻璃
#类型5,6,7是家用玻璃
glass['household'] = glass.glass_type.map({1:0, 2:0, 3:0, 5:1, 6:1, 7:1})
print(glass.head())plt.scatter(glass.al, glass.household)
plt.xlabel('al')
plt.ylabel('household')
plt.show()#拟合线性回归模型并存储预测
feature_cols = ['al']
X = glass[feature_cols]
y = glass.household
linreg.fit(X, y)
glass['household_pred'] = linreg.predict(X)
plt.show()#包括回归线的散点图
plt.scatter(glass.al, glass.household)
plt.plot(glass.al, glass.household_pred, color='red')
plt.xlabel('al')
plt.ylabel('household')
plt.show()

Python数据挖掘学习笔记】九.回归模型LinearRegression简单分析氧化物数据相关推荐

  1. 【Python数据挖掘课程】九.回归模型LinearRegression简单分析氧化物数据

    这篇文章主要介绍三个知识点,也是我<数据挖掘与分析>课程讲课的内容.同时主要参考学生的课程提交作业内容进行讲述,包括:         1.回归模型及基础知识:         2.UCI ...

  2. python数据挖掘学习笔记】十九.鸢尾花数据集可视化、线性回归、决策树花样分析

    #2018-04-05 16:57:26 April Thursday the 14 week, the 095 day SZ SSMR python数据挖掘学习笔记]十九.鸢尾花数据集可视化.线性回 ...

  3. python数据挖掘学习笔记】十六.逻辑回归LogisticRegression分析鸢尾花数据

    但是很多时候数据是非线性的,所以这篇文章主要讲述逻辑回归及Sklearn机器学习包中的LogisticRegression算法 #2018-03-28 16:57:56 March Wednesday ...

  4. python数据挖掘学习笔记】十四.Scipy调用curve_fit实现曲线拟合

    #2018-03-28 10:02:08 March Wednesday the 13 week, the 087 day SZ SSMR python数据挖掘学习笔记]十四.Scipy调用curve ...

  5. python数据挖掘学习笔记】十三.WordCloud词云配置过程及词频分析

    #2018-03-28 09:59:40 March Wednesday the 13 week, the 087 day SZ SSMR 11,12因为涉及到数据库被我暂时放弃了 python数据挖 ...

  6. python数据挖掘学习笔记】十.Pandas、Matplotlib、PCA绘图实用代码补充

    #2018-03-23 18:56:38 March Friday the 12 week, the 082 day SZ SSMR https://blog.csdn.net/eastmount/a ...

  7. Programming Computer Vision with Python (学习笔记九)

    角检测(Corner detection)是指检测图像中具有代表性的(我们感兴趣的)角点,一般讲为形状或边缘的拐角处,这些点可以大略标记对象在图像中的轮廓和位置,如果从一个图像序列中检测每个图像的角点 ...

  8. python分析鸢尾花数据_python数据挖掘学习笔记】十六.逻辑回归LogisticRegression分析鸢尾花数据...

    但是很多时候数据是非线性的,所以这篇文章主要讲述逻辑回归及Sklearn机器学习包中的LogisticRegression算法 #2018-03-28 16:57:56 March Wednesday ...

  9. OpenCV学习笔记(九)——图像轮廓(下)

    <OpenCV轻松入门:面向Python>学习笔记(九) 1-3 查找并绘制轮廓.矩特性及Hu矩 4-5 轮廓拟合及凸包 6. 利用形状场景算法比较轮廓 6.1 计算形状场景距离 6.2 ...

最新文章

  1. 使用@Autowired注入RedisTemplate时报java.lang.NullPointerException
  2. LazyInitializationException的四个解决方案–第2部分
  3. mysql string types ---- mysql 字符类型详解
  4. 基于or1200最小sopc系统搭建(一)--搭建及仿真(DE2,DE2-70)
  5. 除了给予人权,欧洲议会还要让机器人纳税
  6. Jmeter 5.1实现图片上传接口测试
  7. HDU 1162 Eddy's picture (最小生成树)(java版)
  8. flask导入flask-sqlalchemy的一个问题记录
  9. dz开启php5.5,Discuz5.5.0代码高亮显示+运行代码框合成插件 下载第2/4页
  10. 《现代汉语常用字表》(包括常用字和次常用字共3500个)
  11. 30 秒?!Chrome 插件带你速成编程学习 | 程序员硬核评测
  12. python实现模糊综合评价法(FCE)
  13. cmd命令行四种弹窗命令
  14. C#读取TIFF文件
  15. 小米盒子2刷android tv,【二次搬运】小米盒子3S刷Android TV教程
  16. (16)双目视觉的图像获取
  17. JAVA旅游信息管理平台SSM【数据库设计、毕业设计、源码、开题报告】
  18. 徐直军、何小鹏等大咖加盟,2021互联网岳麓峰会即将重磅开幕
  19. centos7双机搭建_Centos7 Mysql 双机热备实现数据库高可用
  20. python中右对齐_Python rjust()字符串右对齐方法详解

热门文章

  1. 【设计模式】第五章 责任链模式
  2. css: position的使用;
  3. pycharm 操作的一些设置,记录下
  4. Selenium with Python 006 - 操作浏览器
  5. ACM Robot Motion
  6. mysql 事务类型表的用法
  7. CenOS下安装Eclipse并配置PyDev
  8. ASP.NET2.0打通文件图片处理任督二脉[转载]
  9. 如何使div的浏览器窗口高度为100%
  10. eclipse怎么显示代码行数