【by28777 by28777域名查询】调用sklearn包中的LinearRegression()回归函数 , fit(X,Y)载入数据集进行训练,然后通过predict(X2)预测数据集X2的利润 , 并将预测结果绘制成直线,(X,Y)数据集绘制成散点图,如图3所示 。
同时调用代码预测2017年企业成本为1200元的利润为575.1元 。注意,线性模型的回归系数会保存在coef_变量中,截距保存在intercept_变量中 。clf.score(X, Y) 是一个评分函数,返回一个小于1的得分 。评分过程的代码如下:
print('系数', clf.coef_)print('截距', clf.intercept_)print('评分函数', clf.score(X, Y))'''系数 [[ 0.62402912]]截距 [-173.70433885]评分函数 0.911831188777'''
该直线对应的回归函数为:y = 0.62402912 * x - 173.70433885 , 则X2[1]=400这个点预测的利润值为75.9,而X1中成本为400元对应的真实利润是80元 , 预测是基本准确的 。
2.线性回归预测糖尿病(1).糖尿病数据集Sklearn机器学习包提供了糖尿病数据集(Diabetes Dataset),该数据集主要包括442行数据 , 10个特征值 , 分别是:年龄(Age)、性别(Sex)、体质指数(Body mass index)、平均血压(Average Blood Pressure)、S1~S6一年后疾病级数指标 。预测指标为Target , 它表示一年后患疾病的定量指标 。原网址的描述如图4所示:
下面代码进行简单的调用及数据规模的测试 。
# -*- coding: utf-8 -*-# By:Eastmount CSDN 2021-07-03from sklearn import datasetsdiabetes = datasets.load_diabetes() #载入数据print(diabetes.data) #数据print(diabetes.target) #类标print('总行数: ', len(diabetes.data), len(diabetes.target))print('特征数: ', len(diabetes.data[0])) #每行数据集维数print('数据类型: ', diabetes.data.shape)print(type(diabetes.data), type(diabetes.target))
调用load_diabetes()函数载入糖尿病数据集,然后输出其数据data和类标target 。输出总行数442行 , 特征数共10个,类型为(442L, 10L) 。其输出如下所示:
[[ 0.03807591 0.05068012 0.06169621 ..., -0.00259226 0.01990842-0.01764613][-0.00188202 -0.04464164 -0.05147406 ..., -0.03949338 -0.06832974-0.09220405]...[-0.04547248 -0.04464164 -0.0730303 ..., -0.03949338 -0.004219860.00306441]][ 151. 75. 141. 206. 135. 97. 138. 63. 110. 310. 101....64. 48. 178. 104. 132. 220. 57.]总行数: 442 442特征数: 10数据类型: (442L, 10L)<type 'numpy.ndarray'> <type 'numpy.ndarray'>
(2).代码实现现在我们将糖尿病数据集划分为训练集和测试集,整个数据集共442行,我们取前422行数据用来线性回归模型训练,后20行数据用来预测 。其中取预测数据的代码为diabetes_x_temp[-20:],表示从后20行开始取值 , 直到数组结束 , 共取值20个数 。
整个数据集共10个特征值,为了方便可视化画图我们只获取其中一个特征进行实验,这也可以绘制图形,而真实分析中,通常经过降维处理再绘制图形 。这里获取第3个特征,对应代码为:diabetes_x_temp = diabetes.data[:, np.newaxis, 2] 。完整代码如下:
# -*- coding: utf-8 -*-# By:Eastmount CSDN 2021-07-03from sklearn import datasetsimport matplotlib.pyplot as pltfrom sklearn import linear_modelimport numpy as np#数据集划分diabetes = datasets.load_diabetes() #载入数据diabetes_x_temp = diabetes.data[:, np.newaxis, 2] #获取其中一个特征diabetes_x_train = diabetes_x_temp[:-20] #训练样本diabetes_x_test = diabetes_x_temp[-20:] #测试样本 后20行diabetes_y_train = diabetes.target[:-20] #训练标记diabetes_y_test = diabetes.target[-20:] #预测对比标记#回归训练及预测clf = linear_model.LinearRegression()clf.fit(diabetes_x_train, diabetes_y_train) #训练数据集pre = clf.predict(diabetes_x_test)#绘图plt.title(u'LinearRegression Diabetes') #标题plt.xlabel(u'Attributes') #x轴坐标plt.ylabel(u'Measure of disease') #y轴坐标plt.scatter(diabetes_x_test, diabetes_y_test, color = 'black') #散点图plt.plot(diabetes_x_test, pre, color='blue', linewidth = 2) #预测直线plt.show()
推荐阅读
- 医保查询+参保登记+缴费 肇庆粤医保小程序操作指南
- 青海大学附属医院单管核酸报告在哪里查询?
- 微信怎么查看银行卡余额 微信怎么查看银行卡余额查询
- 可以查询别人的社保吗? 可以查询别人的社保吗怎么查
- 常州社保查询个人账户缴费明细
- 男人约你动机查询表 男人约会动机查询表
- 收到违章短信但是12123上查询不到 12123上查询不到违章信息讲解
- 招行信用卡账单怎么查询 招行信用卡账单怎么查询不到
- 上海大众4s店 上海大众4s店地址查询
- 常州社保查询个人账户
