第一周学习了机器学习的基本概念以及用python库中的线形回归库进行预测。
作业如下:
已知一组高度-温度的数据,预测在8000米处的温度。
思路:使用LinearRegression库对csv中的数据进行学习,发现数据具有线性特征。就采用predict()函数进行预测,预测结果为8000米海拔对应的温度预测为-39.838度。
使用python实现的代码如下:
#导入库
import pandas as pd #数据读取库
import numpy as np #线性代数库
import matplotlib.pyplot as plt #画图
from sklearn.linear_model import LinearRegression #线性回归库
#辅助画图
data = pd.read_csv("Downloads/Machine-Learning/master/1introduction/exercise/height.vs.temperature.csv")
plt.figure(figsize=(16,8))
plt.scatter(data['height'],data['temperature'],c='black')
plt.xlabel('height')
plt.ylabel('temperature')
plt.show()
x = data['height'].values.reshape(-1,1)
y = data['temperature'].values.reshape(-1,1)
reg = LinearRegression()
reg.fit(x,y)
#对应的输出为LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,
normalize=False),第二个true显示符合线性模型
print('a={:.5}'.format(reg.coef_[0][0]))
print('b={:.5}'.format(reg.intercept_[0]))
print("线性模型为: y = {:.5}x+{:.5}".format(reg.coef_[0][0],reg.intercept_[0]))
#a=-0.0065695
#b=12.719
#线性模型为: y = -0.0065695x+12.719
prediction = reg.predict([[8000]])
print("8000米海拔对应的温度预测为{:.5}度".format(prediction[0][0]))
#8000米海拔对应的温度预测为-39.838度