[github-100天机器学习]day2 simple linear regression

这篇具有很好参考价值的文章主要介绍了[github-100天机器学习]day2 simple linear regression。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

https://github.com/LiuChuang0059/100days-ML-code/blob/master/Day2_SImple_Linear_regression/README.md

简单线性回归

使用单一特征预测响应值。基于自变量X来预测因变量Y的方法,假设两者线性相关,寻找一种根据特征或自变量X的线性函数来预测Y。

目标
  • 找最佳拟合线,最小化预测误差(最小化观测值 Y i Y_i Yi和模型预测值 Y p Y_p Yp之间的长度)
  • m i n { s u m ( y i − y p ) 2 } min \{ sum(y_i - y_p)^2\} min{sum(yiyp)2}
  • y = b 0 + b 1 x 1 y = b_0+b_1x_1 y=b0+b1x1( b 0 b_0 b0截距, b 1 b_1 b1斜率)
步骤
  1. 数据预处理:同day1 六步骤(导入库–导入数据集–检查缺失数据–解析分类数据–拆分数据集–特征缩放)
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt     


dataset = pd.read_csv('studentscores.csv')
X = dataset.iloc[ : ,   : 1 ].values
Y = dataset.iloc[ : , 1 ].values

from sklearn.model_selection import train_test_split    #new
# sklearn.cross_validation 模块已经在最新版本的 Scikit-learn 中被移除了。
#from sklearn.cross_validation import train_test_split   #old
X_train, X_test, Y_train, Y_test = train_test_split( X, Y, test_size = 1/4, random_state = 0) 
  1. 通过训练集训练简单线性回归模型:使用sklearn.linear_model库的LinearRegression类,得到模型regressor
### Step 2: Fitting Simple Linear Regression Model to the training set
# 把数据集拟合到简单线性回归模型,使用fit函数

from sklearn.linear_model import LinearRegression
regressor = LinearRegression() ## 创建一个regressor 对象
regressor = regressor.fit(X_train, Y_train) ### 对象拟合到数据集里面
# 使用fit方法将线性回归模型拟合到训练数据集上,其中:
# X_train 是训练集的特征数据,包含了独立变量。
# Y_train 是训练集的目标变量数据,包含了因变量。
# 使用fit()方法将 regressor 对象拟合到训练集的特征矩阵 X_train 和目标变量 Y_train
# 拟合过程根据线性回归计算b0和b1

模型的拟合过程会根据训练数据集来估计线性回归模型的参数,以使其能够最好地拟合训练数据。一旦模型被拟合到数据集上,你就可以使用它来进行预测。
线性回归模型是一种用于建模和预测连续数值型因变量的简单线性模型。在这个模型中,它会尝试找到最佳的线性关系来拟合自变量和因变量之间的关系。通过拟合模型,你可以使用它来预测新的数据点的因变量值。

  1. 预测结果:预测测试集,结果存到Y_pred,用2中训练的回归模型regressor的LinearRegression类的预测方法对结果进行预测。
### Step 3: Predecting the Result
#在训练好的regressor使用预测模型
#结果输出到向量Y_pred

Y_pred = regressor.predict(X_test)

调用 predict 方法,模型会使用测试集的特征数据 X_test 来生成相应的预测值,这些预测值将存储在 Y_pred 中

有了Y_pred,可以使用不同的评估指标来评估模型的性能,例如均方误差(Mean Squared Error,MSE)或可决系数(Coefficient of Determination,R-squared),以了解模型的拟合程度和预测精度

  1. 可视化:用matplotlib.pyplot对训练集和测试集的结果做散点图,查看预测结果。

### Step 4: Visualization
plt.scatter(X_train , Y_train, color = 'red')
# 红色散点图绘制了训练集的数据点,横轴X_train,纵轴Y_train
plt.plot(X_train , regressor.predict(X_train), color ='blue')   ## 蓝色的线图绘制了模型在训练集上的预测结果
# 回归线,横轴X_train,纵轴regressor.predict(X_train)--训练集预测结果
plt.scatter(X_test , Y_test, color = 'green')
# 绿色散点图绘制了测试集的数据点,横轴X_test,纵轴Y_test
plt.plot(X_test , regressor.predict(X_test), color ='blue')   
## 蓝色的线图绘制了模型在测试集上的预测结果
# 回归线,测试集合预测结果

可视化模型在训练集和测试集上的表现,以及模型的拟合情况。散点图显示了实际数据点,而线图显示了模型的预测结果。
[github-100天机器学习]day2 simple linear regression,ML100day,github,机器学习,线性回归
[github-100天机器学习]day2 simple linear regression,ML100day,github,机器学习,线性回归
[github-100天机器学习]day2 simple linear regression,ML100day,github,机器学习,线性回归

函数介绍

plt.scattermatplotlib.pyplot 库中用于创建散点图的函数。散点图是一种用于可视化数据分布的常用图表类型,通常用于显示两个变量之间的关系。以下是 plt.scatter 的基本用法:

plt.scatter(x, y, s=None, c=None, marker=None, 
cmap=None, norm=None, vmin=None, vmax=None, 
alpha=None, linewidths=None, edgecolors=None, 
*, data=None, **kwargs)

x 和 y: 表示散点图中的数据点的x坐标和y坐标。
s(可选): 表示数据点的大小。
c(可选): 表示数据点的颜色。
marker(可选): 表示数据点的标记类型。
alpha(可选): 表示数据点的透明度。
其他参数用于进一步自定义图表的外观。文章来源地址https://www.toymoban.com/news/detail-521479.html

到了这里,关于[github-100天机器学习]day2 simple linear regression的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [github-100天机器学习]day1 data preprocessing-版本问题已修正

    https://github.com/LiuChuang0059/100days-ML-code/blob/master/Day1_Data_preprocessing/README.md#step-6-feature-scaling—特征缩放 导入库:numpy包含数学计算函数,pandas用于导入和管理数据集 导入数据集:用pandas的read_csv方法读本地csv为数据帧 处理丢失数据:替换nan值,用sklearn.preprocessing库的Imputer类 解

    2024年02月12日
    浏览(42)
  • 黑马机器学习day2

    转换器和预估器(estimator) 实例化一个转换器类        Transformer 调用fit_transform() 转换器调用有以下几种形式: fit_transform fit transform 在sklearn中,估计器是一个重要的角色,是一类实现了算法的API 1、用于分类的估计器: 1)sklearn.neighbors k近邻算法 2)sklearn.native_bayes 贝叶斯

    2024年02月13日
    浏览(39)
  • Linear Regression in mojo with NDBuffer

    The linear regression is the simplest machine learning algorithm. In this article I will use mojo NDBuffer to implement a simple linear regression algorithm from scratch. I will use NDArray class which was developed by in the previous article. First import the necessary libs and NDArray definition: Let’s assume we want to figure out this function: y = W ⋅

    2024年02月07日
    浏览(56)
  • 【100天精通Python】Day75:Python机器学习-第一个机器学习小项目_鸾尾花分类项目(上)

    目录 1 机器学习中的Helloworld _鸾尾花分类项目 2 导入项目所需类库和鸾尾花数据集 2.1 导入类库 2.2 scikit-learn 库介绍  (1)主要特点: (2)常见的子模块: 3 导入鸾尾花数据集 3.1 概述数据 3.2 数据维度 3.3 查看数据自身 3.4 统计描述数据 3.5 数据分类分布 4 数据可视化 4.1 单

    2024年02月04日
    浏览(47)
  • 【100天精通Python】Day73:python机器学习入门算法详解与代码示例

    目录 1. 监督学习算法: 1.1 线性回归(Linear Regression): 1.2  逻辑回归(Logistic Regression): 1.3 决策树(Decision Tree): 1.4 支持向量机(Support Vector Machine): 1.5 随机森林(Random Forest):  2. 无监督学习算法:  2.1 聚类算法(Clustering): 2.2 主成分分析(PCA): 2.3 K均值聚

    2024年02月05日
    浏览(63)
  • 【100天精通Python】Day76:Python机器学习-第一个机器学习小项目_鸾尾花分类项目,预测与可视化完整代码(下)

    目录 5 模型实现 5.1 分离出评估数据集 5.2 创建不同的模型来预测新数据 5.3 采用10折交叉验证来评估算法模型 5.4 生成最优模型 6 实施预测 7 模型评估 8 完整代码 (1)鸾尾花分类的完整代码 (2)可视化不同模型预测的评估结果    通过不同的算法来创建模型,并评估它们的

    2024年02月05日
    浏览(57)
  • 【100天精通python】Day2:python入门_ python的语言基础,编码规范,代码注释,缩进,保留字,标识符

    目录  1 编码规范 1.1 编码规范准则 1.2 编码规范示例 2  代码注释 3  缩进

    2024年02月13日
    浏览(50)
  • Go学习-Day2

    个人博客 驼峰法,首字母大写可以在其他包里使用,首字母小写只能在本包内使用 跨包使用,的import地址从src的子目录开始,src以及src所在的GOPATH自动补全 定义变量 var+变量名+变量类型 自动推断类型 简略写法 对应的,可以声明多个变量 另一种声明方法,开发中常用

    2024年02月12日
    浏览(37)
  • C++学习(day2)

    C语言风格的字符串依然支持,使用字符数组的形式存储字符串,字符串标志:‘\\0’ C++风格的字符串,本质上是string类的对象 使用要求:需要加头文件:#include 单个数据的初始化和赋值 方式 解释 方式1 string s2 = “ni hao”; 方式2 string s3(“shang hai”); 方式3 string s4{“zhangpeng

    2023年04月24日
    浏览(38)
  • 机器学习:逻辑回归(Logistic Regression)

    Logistic Regression. 本文目录: 逻辑回归模型 Logistic函数 交叉熵损失 梯度下降法 核逻辑回归 逻辑回归(logistic regression) 是一种二分类模型,其思想是通过引入一个函数将线性回归的输出限制在 [ 0 , 1 ] [0,1] [ 0 , 1

    2024年02月09日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包