一元线性回归模型案例(机器学习)

 2025-09-05 00:12:01  阅读 337  评论 0

摘要:1.什么是机器学习简单来说:从数据中学习步骤:建立模型学习模型验证模型(测试模型)2.机器学习分类监督式学习非监督式学习半监督式学习强化学习通过对数据的学习,寻找属性和标记之间的映射关系回归(regression): 预测连续值分类(classification): 预测离散值一元线性

1.什么是机器学习

简单来说:从数据中学习

步骤:

建立模型学习模型验证模型(测试模型)

2.机器学习分类

监督式学习非监督式学习半监督式学习强化学习

通过对数据的学习,寻找属性和标记之间的映射关系

回归(regression): 预测连续值

分类(classification): 预测离散值

一元线性回归问题

模型:y = wx + b

模型变量:x

w:权重b:偏置值

最佳拟合直线:拟合误差和最小

损失函数/代价函数:模型的预测值与真实值的不一致的程度

最值问题(极值问题)

思路:极值点的偏导数为0

注:使用上述方法求得的解成为解析解或封闭解,后续会讲解使用迭代方法求极值

一元线性回归实例

问题导入(参照慕课:《tensorflow2.0神经网络与深度学习实践》)

程序代码:

第一种方法,使用python方法

#实现房屋销售预测实例

import tensorflow as tf
import numpy as np

#test database
area = [128.15, 45.0, 141.43, 106.27, 99.0, 53.84, 85.36, 70.00]
#step
"""
1,load sample data
2,learning model:calculate w,b
3,forecast house price
"""
# 加载样本数据
x = [137.97, 104.50, 100.00, 124.32, 79.20, 99.00, 124.00, 114.00,  # 商品房面积
     106.69, 138.05, 53.75, 46.91, 68.00, 63.02, 81.26, 86.21]
y = [145.00, 110.00, 93.00, 116.00, 65.32, 104.00, 118.00, 91.00,  # 房价
     62.00, 133.00, 51.00, 45.00, 78.50, 69.65, 75.69, 95.30]

#python预测房价
class python_realization:
    _meanX = sum(x) / len(x)  # x平均数
    _meanY = sum(y) / len(y)  # y平均数

    _sumXY = 0
    _sumX = 0
    _x = []
    _y = []

    _w = 0.
    _b = 0.

    x_test = []

    def __init__(self, x, y):
        self._x = x
        self._y = y

    def calc(self):
        for i in range(len(x)):
            self._sumXY += (x[i] - self._meanX) * (y[i] - self._meanY)
            self._sumX += (x[i] - self._meanX) * (x[i] - self._meanX)

        self._w = self._sumXY / self._sumX
        self._b = self._meanY - self._w * self._meanX

        print(type(self._w), type(self._b), "\n")

        print("w = ", self._w, "\nb = ", self._b, "\n")
    def forecast(self,x_test):
        # 预测房价
        #x_test = [128.15, 45.00, 141.43, 106.27, 99.00, 53.84, 85.36, 70.00]
        self.x_test.append(x_test)

        print("面积\t      预测价格")
        for i in range(len(x_test)):
            print(x_test[i], "\t", round(self._w * x_test[i] + self._b, 2))  # round保留两位小数

第二种方法:使用tensorflow

# tensorflow实现房屋销售预测实例
import tensorflow as tf
import numpy as np

x = tf.constant([137.97, 104.50, 100.00, 124.32, 79.20, 99.00, 124.00, 114.00,  # 商品房面积
                 106.69, 138.05, 53.75, 46.91, 68.00, 63.02, 81.26, 86.21])
y = tf.constant([145.00, 110.00, 93.00, 116.00, 65.32, 104.00, 118.00, 91.00,  # 房价
                 62.00, 133.00, 51.00, 45.00, 78.50, 69.65, 75.69, 95.30])

meanX = tf.reduce_mean(x)
meanY = tf.reduce_mean(y)

sumXY = tf.reduce_sum((x - meanX) * (y - meanY))#降维
sumX = tf.reduce_sum((x - meanX) * (x - meanX))

w = sumXY / sumX
b = meanY - w * meanX

print(type(w), type(b))

print("权值:w = ", w, "\n偏置值b = ", b, )
print("线性模型:y=", w.numpy(), "x+", b.numpy())

x_test = np.array([128.15, 45.00, 141.43, 106.27, 99.00, 53.84, 85.36, 70.00])
y_pred = (w * x_test + b).numpy()

print("\n面积\t预测价格")
for i in range(len(x_test)):
    print(x_test[i], "\t", round(y_pred[i], 2))  # round保留两位小数

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']   #中文字体配置
plt.rcParams['axes.unicode_minus']=False  #符号显示

plt.figure()

plt.scatter(x,y,color='blue',label='销售记录')
plt.scatter(x_test,y_pred,color='red',label='预测房价')
plt.plot(x_test,y_pred,color='yellow',label='拟合直线',linewidth=2)

plt.xlabel("面积(平方米)",fontsize=14)
plt.ylabel("价格(万元)",fontsize=14)

plt.xlim((40,150))
plt.ylim((40,150))

plt.suptitle("商品房销售价格预测图",fontsize=20)

plt.legend(loc="upper left")
plt.show()

结果图:

参考链接:慕课《tensorflow2.0神经网络与深度学习实践》

版权声明:我们致力于保护作者版权,注重分享,被刊用文章【一元线性回归模型案例(机器学习)】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!;

原文链接:https://www.yxiso.com/zhishi/2129654.html

发表评论:

关于我们
院校搜的目标不仅是为用户提供数据和信息,更是成为每一位学子梦想实现的桥梁。我们相信,通过准确的信息与专业的指导,每一位学子都能找到属于自己的教育之路,迈向成功的未来。助力每一个梦想,实现更美好的未来!
联系方式
电话:
地址:广东省中山市
Email:beimuxi@protonmail.com

Copyright © 2022 院校搜 Inc. 保留所有权利。 Powered by BEIMUCMS 3.0.3

页面耗时0.0379秒, 内存占用1.93 MB, 访问数据库24次

陕ICP备14005772号-15