码迷,mamicode.com
首页 > 其他好文 > 详细

线性回归

时间:2019-10-18 00:01:35      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:otl   dict   ict   log   ssi   from   numpy   on()   datasets   

1 一元线性回归

技术图片
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression #导入机器学习库中的线性回归模块

data=pd.DataFrame({square_feet:[150,200,250,300,350,400,600],
                   price:[5450,6850,8750,9650,10450,13450,16450]})
#创建一组7行2列的数据,square_feet为房屋面积,price为对应价格

data_train=np.array(data[square_feet]).reshape(data[square_feet].shape[0],1)#这里是将数据转化为一个1维矩阵
print(type(data_train))
print(data_train)
data_test=data[price]


#创建线性回归模型,拟合面积与价格并通过面积预测价格
regr=LinearRegression() #创建线性回归模型,参数默认
# 这里的fit()中的第一个参数必须是二维数组才行,否则报错
regr.fit(data_train,data_test)#拟合数据,square_feet将房屋面积作为x,price价格作为y;也可以理解用面积去预测价格
a=regr.predict([[268.5]])
print(a)#查看预测结果
print(regr.score(data_train,data_test))#查看拟合准确率情况,这里的检验是 R^2 ,趋近于1模型拟合越好
#预测的结果:268.5平的房子价格为8833.54, R^2 =0.967
#我们来画个图看一下数据最后是什么样的
plt.scatter(data[square_feet],data[price]) #画散点图看实际面积和价格的分布情况
plt.plot(data[square_feet],regr.predict(np.array(data[square_feet]).reshape(data[square_feet].shape[0],1)),color=red) #画拟合面积与价格的线型图

plt.show()
View Code

参考:https://blog.csdn.net/Arwen_H/article/details/82181288

官网示例:

技术图片
import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets, linear_model
from sklearn.metrics import mean_squared_error, r2_score

#加载糖尿病数据集
diabetes = datasets.load_diabetes()

#只使用一个特性
diabetes_X = diabetes.data[:, np.newaxis, 2]

# 将数据分为训练diabetes_X_train /测试集diabetes_X_test
diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]

# 把目标分成训练diabetes_y_train /测试集diabetes_y_test
diabetes_y_train = diabetes.target[:-20]
diabetes_y_test = diabetes.target[-20:]

#创建线性回归对象
regr = linear_model.LinearRegression()

#使用训练集训练模型
regr.fit(diabetes_X_train, diabetes_y_train)
print(diabetes_X_train)
#使用测试集进行预测
diabetes_y_pred = regr.predict(diabetes_X_test)

# 查看系数
print(Coefficients: \n, regr.coef_)
# 查看均方误差
print("Mean squared error: %.2f"
      % mean_squared_error(diabetes_y_test, diabetes_y_pred))
# 解释方差分数:1是完美的预测
print(Variance score: %.2f % r2_score(diabetes_y_test, diabetes_y_pred))

#图输出
plt.scatter(diabetes_X_test, diabetes_y_test,  color=black)
plt.plot(diabetes_X_test, diabetes_y_pred, color=blue, linewidth=3)
plt.xticks(())
plt.yticks(())

plt.show()
View Code

 

线性回归

标签:otl   dict   ict   log   ssi   from   numpy   on()   datasets   

原文地址:https://www.cnblogs.com/xxswkl/p/11695659.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!