大数据分析机器学习(二)之直方图和多元线性回归

上一次的文章一元线性回归

数据例子

以下是一个plt画出房子,人口,年龄等数据的直方图,为什么要画直方图呢?因为直方图本身是一种统计数据,比如年龄为45的总共有几个,年龄为30的总共有几个,学会画直方图以后,就可以从数据直方图中获取部分启发式洞见。先不要管意义是什么,先学会画直方图,在python中使用pandas和matplotlib.pyplot来画出直方图,并且理解,直方图是"直观分类"的统计就行
数据如下图所示
在这里插入图片描述
这一份数据有2万多行,本身其实就是大数据的统计后的数据,然后再进行二次分析,代表着经纬度的房子上的数据,一次一次的数据统计和清洗,本身就是一个艰苦的工作,所以网络上存在着那种所谓的平台,能直接做出最终结果的工具,几乎是很难做到的,数据科学是一个需要"洞见"的科学。

import pandas as pd
import os 
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
def load(path):
    csvpath = os.path.join(path,"housing.csv")
    return pd.read_csv(csvpath)
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False


hdata=load("./datasets/housing")
print(hdata.head())
print(hdata.info())

hdata.hist(bins=50,figsize=(20,15))
plt.show();

在这里插入图片描述

摄像头例子

以下是摄像头数据,这是一份虚拟数据,经纬度上的摄像头记录了每小时经过的人流和车流,以及摄像头的品牌
在这里插入图片描述
在这里插入图片描述
先看摄像头的品牌直方图

hdata=load("./datasets")
print(hdata.head())
print(hdata.info())
hdata["brand"].hist()
#hdata.plot(kind="scatter", x="longitude", y="latitude")
#hdata.hist(bins=50,figsize=(20,15))
plt.show();

在这里插入图片描述
显示了hik,dah,yushi三个品牌的摄像头个数,很直观吧

数据清理

使用pandas DataFrame 属性中:
1 dropna() 函数
2 drop() 函数
3 fillna() 函数

median = data["people"].median()
data["people"].fillna(median)

意思为将数据中为空的未曾统计的经过摄像头的数目都使用中位均值来代替。

数据预测

下面使用上一次我们使用的线性回归来预测经过某一个摄像头的人口流量
当然说明:所有数据都是模拟的,并且真实的预测并没有如此"线性",而是和很多因素有关。这里做简单的计算,和上一次不同的是使用多元线性回归。

import pandas as pd
import os 
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
import numpy as np 
import sklearn.linear_model

def load(path):
    csvpath = os.path.join(path,"camera.csv")
    return pd.read_csv(csvpath)
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False


hdata=load("./datasets")
print(hdata.head())
print(hdata.info())
hdata["brand"].hist()


#X = np.c_[hdata["longitude"]] + np.c_[hdata["latitude"]]
#Y = np.c_[hdata["people"]]

X = hdata.loc[:, ('longitude','latitude')]
Y = hdata.loc[:, 'people']
print(X)
print(Y)
"""多元线性
"""
model = sklearn.linear_model.LinearRegression()
model.fit(X, Y)
X_new = [[217,135]]
print(model.predict(X_new))

#hdata.plot(kind="scatter", x="longitude", y="latitude")
#hdata.hist(bins=50,figsize=(20,15))
plt.show();

在这里插入图片描述
预测出位置217,135在这个时间段的人口流量为281左右。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qianbo_insist

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值