样本准备
import numpy as np
import matplotlib. pyplot as plt
train_X = np. linspace( - 1 , 1 , 100 )
train_Y = 2 * train_X + np. random. randn( * train_X. shape) * 0.3
plt. plot( train_X, train_Y, 'ro' , label= 'Original data' )
plt. legend( )
plt. show( )
模型训练及可视化
from sklearn. linear_model import LinearRegression
model = LinearRegression( )
model. fit( train_X. reshape( 100 , 1 ) , train_Y. reshape( 100 , 1 ) )
print ( "输入6,的模型预测结果:" , model. predict( 6 ) )
print ( "线性模型的斜率与截距:" , model. coef_, model. intercept_)
print ( "使用斜率与截距的计算结果:" , model. coef_ * 6 + model. intercept_)
plt. plot( train_X, train_Y, 'ro' , label= 'Original data' )
plt. plot( train_X, model. predict( train_X. reshape( 100 , 1 ) ) , label= 'Fitted line' )
plt. legend( )
plt. show( )
模型评估
X_test = np. linspace( 11 , 20 , 20 )
Y_test = 2 * X_test + np. random. randn( * X_test. shape) * 0.3
print ( "模型评估的分值:" , model. score( X_test. reshape( 20 , 1 ) , Y_test. reshape( 20 , 1 ) ) )
模型保存,及应用
from sklearn. externals import joblib
joblib. dump( model, "train_model.m" )
model = joblib. load( "train_model.m" )
print ( "导入模型,并输入6得到的预测结果:" , model. predict( 6 ) )