博文配套视频课程:24小时实现从零到AI人工智能
使用模型的步骤
Sklearn 把所有机器学习的模式整合统一起来了,学会了一个模式就可以通吃其他不同类型的学习模式
- 导入模块
- 读入数据
- 建立模型
- 训练与测试
训练本质就是找权重与偏置
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_absolute_error
# 1: 数据的加载
data = pd.read_csv("../data/house.csv")
data.info()
print(data.head(n=3))
# 2: 数据的清理 (缺失数据)
# 3: 特征工程 (样本的特征个目标值分开)
y = data['price'] # 目标值(标准答案)
# axis=0 代表的是行, 1代表的是列
X = data.drop(['price','row_id'],axis=1) # 特征值
# 4:数据拆分成训练集和测试集
# X_train: 特征值的训练集 y_train: 目标值的训练集
# X_test:测试集的特征值 y_test: 测试集的目标值
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.25,random_state=1)
# 5:根据不同的需求选择合适的模型
lr = LinearRegression()
# 6: 训练模型,模型的一个调优
# y = w * x + b
lr.fit(X_train,y_train)
# 训练的本质就是获取权重与偏置
print(lr.coef_,lr.intercept_)
测试集与绝对值误差
# 训练完毕获取权重和偏置,然后采用测试集的数据获取预测值
y_predict = lr.predict(X_test) # y_predict 就是测试集的预测值
# 预测值和真实值之差就是模型的误差
mae = np.sum(np.absolute(y_predict - y_test)) / len(y_test)
print('绝对值平均误差为', mae)
mae = mean_absolute_error(y_test,y_predict)
print('绝对值平均误差为', mae)
# 显示模型的正确率
print('模型预测正确率',lr.score(X_test,y_test))
# 7: 模型保存与使用