当前位置: 首页 > news >正文

做网站视频网站用手机网站做app

做网站视频网站,用手机网站做app,在网站做推广要钱吗,网站建设公司的服务器目录 数据导入 单变量线性回归 绘制散点图 相关系数R 拆分训练集和测试集 多变量线性回归 数据检验#xff08;判断是否可以做线性回归#xff09; 训练线性回归模型 先甩几个典型的线性回归的模型#xff0c;帮助大家捡起那些年被忘记的数学。 ● 单变量线性回归判断是否可以做线性回归 训练线性回归模型 先甩几个典型的线性回归的模型帮助大家捡起那些年被忘记的数学。 ● 单变量线性回归 h(x)theta0 theta1* x 1 ● 多变量线性回归 h(x)theta0 theta1* x 1 theta2* x 2 theta3* x 3 ● 多项式回归        h(x)theta0 theta1* x 1 theta2* (x2^2) theta3* (x3^3)  多项式回归始终还是线性回归你可以令x2x2^2x3x3^3简单的数据处理一下就好了这样上述多项式回归的模型就变成多变量线性回归的模型了。 数据导入 下面我们要开始用数据说话了先来看看数据源是什么样子吧。 import pandas as pd import numpy as np import matplotlib.pyplot as plt from pandas import DataFrame,Series from sklearn.cross_validation import train_test_split from sklearn.linear_model import LinearRegression#读取文件 datafile uE:\\pythondata\\dhdhdh.xlsx#文件所在位置u为防止路径中有中文名称此处没有可以省略 data pd.read_excel(datafile)#datafile是excel文件所以用read_excel,如果是csv文件则用read_csv examDf DataFrame(data) examDf.head() 运行结果 Call Connect Return 0 2.1335 1.267760 1.176615 1 2.5534 1.352941 1.978967 2 3.3361 1.872093 2.249511 3 3.3861 1.826667 2.986597 4 3.9682 1.875000 2.798570 单变量线性回归 绘制散点图 先将上述数据中的Connect接通量和Return回款量做一个单变量的线性回归先绘制一个散点图大致看一下分布情况。 #绘制散点图,examDf.jt为X轴examDf.hk为Y轴 plt.scatter(examDf.Connect,examDf.Return,color darkgreen,label Exam Data)#添加图的标签x轴y轴 plt.xlabel(The Connection amount of the average account)#设置X轴标签 plt.ylabel(The ratio of average return amount)#设置Y轴标签 plt.show()#显示图像 运行结果   看来商业中的实际数据总是和课本上的完美数据不一样看这零零散散的分布线性关系很是勉强但是大致还是有一个线性相关的样子的那么就看看相关系数有多少吧。 相关系数R rDf examDf.corr()#查看数据间的相关系数 print(rDf) 运行结果  Call Connect Return Call 1.000000 0.445870 0.441673 Connect 0.445870 1.000000 0.745338 Return 0.441673 0.745338 1.000000 Connect接通量和Return回款量的相关系数为0.745338还不错。 相关系数是用以反映变量之间相关关系密切程度的统计指标对于相关性强度来说我们一般认为 0~0.3 弱相关 0.3~0.6  中等程度相关 0.6~1  强相关 在数学中相关系数的计算一般是这样的给数学狂人看 R(相关系数) X和Y的协方差 / (X的标准差 * Y的标准差) covX,Y/ σX * σY 即person系数 拆分训练集和测试集 Connect接通量和Return回款量属于强相关可以进行线性回归训练那么我们先来拆分训练集和测试集吧。 #拆分训练集和测试集train_test_split是存在与sklearn中的函数 X_train,X_test,Y_train,Y_test train_test_split(examDf.Connect,examDf.Return,train_size0.8) #train为训练数据,test为测试数据,examDf为源数据,train_size 规定了训练数据的占比print(自变量---源数据:,examDf.Connect.shape, 训练集:,X_train.shape, 测试集:,X_test.shape) print(因变量---源数据:,examDf.Return.shape, 训练集:,Y_train.shape, 测试集:,Y_test.shape)#散点图 plt.scatter(X_train, Y_train, colordarkgreen, labeltrain data)#训练集为深绿色点 plt.scatter(X_test, Y_test, colorred, labeltest data)#测试集为红色点#添加标签 plt.legend(loc2)#图标位于左上角即第2象限类似的1为右上角3为左下角4为右下角 plt.xlabel(The Connection amount of the average account)#添加 X 轴名称 plt.ylabel(The ratio of average return amount)#添加 Y 轴名称 plt.show()#显示散点图 运行结果   自变量---源数据: (14,) 训练集: (11,) 测试集: (3,) 因变量---源数据: (14,) 训练集: (11,) 测试集: (3,)回归模型训练 #调用线性规划包 model LinearRegression()#线性回归训练 model.fit(X_train,Y_train)#调用线性回归包a model.intercept_#截距 b model.coef_#回归系数#训练数据的预测值 y_train_pred model.predict(X_train) #绘制最佳拟合线标签用的是训练数据的预测值y_train_pred plt.plot(X_train, y_train_pred, colorblue, linewidth2, labelbest line)#测试数据散点图 plt.scatter(X_train, Y_train, colordarkgreen, labeltrain data) plt.scatter(X_test, Y_test, colorred, labeltest data)#添加图标标签 plt.legend(loc2)#图标位于左上角即第2象限类似的1为右上角3为左下角4为右下角 plt.xlabel(The Connection amount of the average account)#添加 X 轴名称 plt.ylabel(The ratio of average return amount)#添加 Y 轴名称 plt.show()#显示图像print(拟合参数:截距,a,,回归系数,b) print(最佳拟合线: Y ,round(a,2),,round(b[0],2),* X)#显示线性方程并限制参数的小数位为两位运行结果   拟合参数:截距 -0.7291766860887745 ,回归系数 [1.71584366] 最佳拟合线: Y -0.73 1.72 * X 补充一句有博友说单变量线性回归上面的这段代码中加一个reshape就能运行出来了可能是版本不同我没加也能运行出来所以分享在下面给大家参考一下如果有和博友一样的情况可以试试增加下面一段代码谢谢博友 dsy23 的分享 #调用线性规划包 model LinearRegression()#在这里加一段 X_train X_train.values.reshape(-1,1) X_test X_test.values.reshape(-1,1)#线性回归训练 model.fit(X_train,Y_train)#调用线性回归包a model.intercept_#截距 b model.coef_#回归系数 多变量线性回归 在单变量线性回归中我们将每一步都讲解的极其详细所以在多变量线性回归中我们不会重复讲那些简单的部分了但是为了防止python小白迷失自己所以在这部分该有的代码还是会甩出来该有的备注也都有只不过不会一点一点分步骤来了。 上面我们提到多变量线性回归的模型为h(x)theta0 theta1* x 1 theta2* x 2 theta3* x 3下面我们还是使用单变量线性回归中的数据单变量线性回归中我们只用到了Connect接通量和Return回款量既然是多变量回归模型那么我们就多加一个变量Call拨打量。 数据检验判断是否可以做线性回归 #-*- coding:utf-8 -*- import pandas as pd import numpy as np import seaborn as sns import matplotlib.pyplot as plt from pandas import DataFrame,Series from sklearn.cross_validation import train_test_split from sklearn.linear_model import LinearRegression#读取文件 datafile uE:\\pythondata\\dhdhdh.xlsx#文件所在位置u为防止路径中有中文名称此处没有可以省略 data pd.read_excel(datafile)#datafile是excel文件所以用read_excel,如果是csv文件则用read_csv examDf DataFrame(data)#数据清洗,比如第一列有可能是日期这样的话我们就只需要从第二列开始的数据 #这个情况下把下面中括号中的0改为1就好要哪些列取哪些列 new_examDf examDf.ix[:,0:]#检验数据 print(new_examDf.describe())#数据描述会显示最值平均数等信息可以简单判断数据中是否有异常值 print(new_examDf[new_examDf.isnull()True].count())#检验缺失值若输出为0说明该列没有缺失值#输出相关系数判断是否值得做线性回归模型 print(new_examDf.corr())#0-0.3弱相关0.3-0.6中相关0.6-1强相关#通过seaborn添加一条最佳拟合直线和95%的置信带直观判断相关关系 sns.pairplot(data, x_vars[Call,Connect], y_varsReturn, size7, aspect0.8, kindreg) plt.show()运行结果 Call Connect Return count 99.000000 99.000000 99.000000 mean 3.153649 1.967779 2.591121 std 1.027607 0.470364 0.790172 min 1.280100 1.014208 0.941292 25% 2.373528 1.596610 2.044147 50% 3.040000 1.913472 2.476091 75% 3.835980 2.253994 3.035603 max 5.851181 3.234977 5.160840 Call 0 Connect 0 Return 0 dtype: int64Call Connect Return Call 1.000000 0.837052 0.744792 Connect 0.837052 1.000000 0.844640 Return 0.744792 0.844640 1.000000判断是否可以做线性回归 异常值通过最值或者平均数或者中位数等判断或者直接通过查看是否有游离在大部队之外的点来判断是否有异常值空值这个没办法你必须看运行结果的10-12行是否等于0是0则无空值如果不是0就要看看是删掉空值呢还是用其他值代替呢不同情况不同对待相关性要么通过相关系数的大小判断要么看散点图中的最佳拟合直线和95%的置信带直观判断相关关系训练线性回归模型 #拆分训练集和测试集 X_train,X_test,Y_train,Y_test train_test_split(new_examDf.ix[:,:2],new_examDf.Return,train_size0.8) #new_examDf.ix[:,:2]取了数据中的前两列为自变量此处与单变量的不同print(自变量---源数据:,new_examDf.ix[:,:2].shape, 训练集:,X_train.shape, 测试集:,X_test.shape) print(因变量---源数据:,examDf.Return.shape, 训练集:,Y_train.shape, 测试集:,Y_test.shape)#调用线性规划包 model LinearRegression()model.fit(X_train,Y_train)#线性回归训练a model.intercept_#截距 b model.coef_#回归系数 print(拟合参数:截距,a,,回归系数,b)#显示线性方程并限制参数的小数位为两位 print(最佳拟合线: Y ,round(a,2),,round(b[0],2),* X1 ,round(b[1],2),* X2)Y_pred model.predict(X_test)#对测试集数据用predict函数预测plt.plot(range(len(Y_pred)),Y_pred,red, linewidth2.5,labelpredict data) plt.plot(range(len(Y_test)),Y_test,green,labeltest data) plt.legend(loc2) plt.show()#显示预测值与测试值曲线运行结果 自变量---源数据: (99, 2) 训练集: (79, 2) 测试集: (20, 2) 因变量---源数据: (99,) 训练集: (79,) 测试集: (20,) 拟合参数:截距 -0.006540954521370601 ,回归系数 [0.08624344 1.19029593] 最佳拟合线: Y -0.01 0.09 * X1 1.19 * X2 效果勉强满意毕竟才用了80个数训练的模型要求高的话多用一些数据就好。 除了用 Python 做线性回归我们还可以使用 SPSS 来做不用编程不用各种调参就是点几下就可以输出结果更简便具体操作请参考下面链接里的文章 数据建模 - SPSS做多元线性回归 - 分析步骤、输出结果详解、与Python的结果对比 -SPSS
http://www.pierceye.com/news/668127/

相关文章:

  • 网站建设与制作与维护ppt百度广告联盟收益
  • 在线网站建设费用是多少大学生活动策划书模板
  • 动物网站建设wordpress无法跳转正确页面
  • 上海市建设工程 安全协会网站wordpress会员微信支付宝
  • pc网站转换手机网站代码桂林工作网招聘
  • 营销型网站建设的要素怎么建网站赚钱
  • 成都网站建设学习郑州制作网站推荐
  • 网站建设 镇江丹阳php网站开发实例教程代码
  • 佛山外贸网站建设方案专业网站建设系统
  • 做一个网站团队需要哪些人员花钱也可以哪些网站可以做推广广告
  • 各省施工备案网站做动漫网站的素材
  • 新余网站设计网站模板做网站
  • 防止服务器上的网站被进攻app推广兼职
  • 保定电商网站建设国内最好的crm软件
  • 企业网站建设哪家公司好莱芜金点子信息港房产网
  • 个人可以建设网站吗海淀网站建设本溪
  • 宜昌网站建设兼职怎样做自媒体拍视频赚钱
  • 我的世界做视频封面的网站免费的app源码网
  • 网站搭建wordpress参考消息电子版在线阅读
  • 成立一个网站平台要多少钱科技有限公司一般是做什么的
  • 邵阳 网站开发 招聘桂林阳朔楼盘最新价格
  • 如何建设网站导航内链接wordpress 特别慢
  • 蚌埠网站建设文章网站软件定制开发公司
  • 软件通网站建设百度收录网站电话
  • 取消网站备案制度正规的电商平台有哪些
  • 茶叶网站源码php6731官方网站下载
  • 网站建设mfdos 优帮云制作简历哪个网站好
  • 淮南市城乡建设局网站网站seo收费
  • 陕西手机网站制作描述网站开发的广告词
  • 一个网址建多个网站手机网站数据加载