python中的linearregression_python 10大算法之一 LinearRegression 笔记

#!/usr/bin/env python#encoding: utf-8

"""@version:

@author: --*--.

@file: LinearRegression.py

@time: 2018/11/1 11:05

@desc:"""

#Required Packages

importmatplotlib.pyplot as pltimportnumpy as npfrom sklearn importlinear_modeldefget_data():"""生成随机的线性数据集

:return:"""x= 100 * np.random.rand(100, 1).astype(np.float32)

y= 2 * x + 10 #直线

#y = 7 * x ** 5 + 3 * x + 10 # 曲线

y += 50 * np.random.rand(100, 1).astype(np.float32)returnx, y#Function for Fitting our data to Linear model

deflinear_model_main(X_parameters, Y_parameters, predict_value):#Create linear regression object

regr =linear_model.LinearRegression()

regr.fit(X_parameters, Y_parameters,sample_weight=None) #权重

predict_outcome =regr.predict(predict_value)

predictions={}

predictions['intercept'] =regr.intercept_

predictions['coefficient'] =regr.coef_

predictions['predicted_value'] =predict_outcomereturnpredictions#Function to show the resutls of linear fit model

defshow_linear_line(X_parameters, Y_parameters, predictvalue):#Create linear regression object

regr =linear_model.LinearRegression()

regr.fit(X_parameters, Y_parameters)

fig=plt.figure()

ax1= fig.add_subplot(111)#设置标题

ax1.set_title('Housing Forecast')

ax1.scatter(X_parameters, Y_parameters, color='blue', marker='*')

ax1.plot(X_parameters, regr.predict(X_parameters), color='c', linewidth=1)#画点

ax1.scatter(predictvalue, regr.predict(predictvalue), color='red')#画水平虚线

plt.axvline(x=predictvalue, ls='dotted', color='y')

plt.axhline(y=regr.predict(predictvalue), ls='dotted', color='y')

plt.xlabel('x:area')

plt.ylabel('y:price')

plt.show()if __name__ == "__main__":

X, Y=get_data()

predictvalue= 90 #面积

#新版必须2维哦

predictvalue = np.array(predictvalue,dtype=np.int32).reshape(1, -1)

result=linear_model_main(X, Y, predictvalue)print("截距-Intercept value", result['intercept'])print("回归系数-coefficient", result['coefficient'])print("y-Predicted value:", result['predicted_value'])print("面积 %d 的价格预测为 %d" % (predictvalue, result['predicted_value']))

show_linear_line(X, Y, predictvalue)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值