机器学习基础(一)

一元线性回归-代价函数

求预测值和真实值的误差平方和,并使其达到最小
Xuez5jio8t.png

一元线性回归-梯度下降法

初始化θ0和θ1,不断改变θ0和θ1,直到J(θ0,θ1)达到一个全局最小值或者局部最小值
dBAmWa9Gd0.png
α为学习率

一元线性回归-实现

一元线性回归方程
9sft6IFChi.png

from sklearn.linear_model import LinearRegression
import numpy as np
import matplotlib.pyplot as plt

data = np.genfromtxt("../data/csv/data.csv", delimiter=",")
x_data = data[:, 0, np.newaxis]
y_data = data[:, 1, np.newaxis]
model = LinearRegression()
model.fit(x_data, y_data)
# 画图
plt.plot(x_data, y_data, 'b.')
plt.plot(x_data, model.predict(x_data), 'r')
plt.show()

Tensorflow教程(前一)

多元线性回归-代价函数

2sSGaNkm54.png

多元线性回归-梯度下降法

x0=1,为了描述方便,让x的下标与θ下标一一对应
RNd7Cm4Uub.png

多元线性回归-实现

多元线性回归方程
Cmj9yts1mL.png

import numpy as np
from numpy import genfromtxt
from sklearn import linear_model
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 导入数据
data = genfromtxt(r'E:/project/python/data/csv/Delivery.csv', delimiter=',')
# 切分数据
x_data = data[:, :-1]
y_data = data[:, -1]
# 建立模型
model = linear_model.LinearRegression()
model.fit(x_data, y_data)
print("系数:", model.coef_)
print("截距:", model.intercept_)
# 画图
ax = plt.figure().add_subplot(111, projection='3d')
ax.scatter(x_data[:, 0], x_data[:, 1], y_data, c='r', marker='o', s=100)
x0 = x_data[:, 0]
x1 = x_data[:, 1]
x0, x1 = np.meshgrid(x0, x1)
z = model.intercept_ + x0 * model.coef_[0] + x1 * model.coef_[1]
ax.plot_surface(x0, x1, z)
ax.set_xlabel('Miles')
ax.set_ylabel('Num of Deliveries')
ax.set_zlabel('Time')
plt.show()

Tensorflow教程(前一)

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!