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进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!;
工作时间:8:00-18:00
客服电话
电子邮件
beimuxi@protonmail.com
扫码二维码
获取最新动态
