长江三角洲城市群数据平台(5)-Data_mining(ols)

(1)在urls.py中新增以下url,

Paste_Image.png

(2)在data_mining.html中增加链接到回归分析页面(data_ols),


长江三角洲城市群数据平台(5)-Data_mining(ols)_第1张图片
Paste_Image.png
长江三角洲城市群数据平台(5)-Data_mining(ols)_第2张图片
Paste_Image.png

(3)页面布局如下,

{% extends "base.html" %}
{% load staticfiles %}
{% block main %}
     

多元線性回歸

{% endblock %}

布局效果:

长江三角洲城市群数据平台(5)-Data_mining(ols)_第3张图片
Paste_Image.png

(4)要实现点击效果,点击变量,出现变量选择框,选择变量后点击,便进行ols回归运算,显示回归结果:

长江三角洲城市群数据平台(5)-Data_mining(ols)_第4张图片
Paste_Image.png

因此编写如下代码:

 

(5)在views中,编写视图函数。
首先导入回归模块,from sklearn.linear_model import LinearRegression。

然后,编写模板显示函数,

def ols_show(request):
    return render(request, "data_mining/ols.html")

编写显示变量的函数,

  base_dir = 'media/data_mining/'
    l = os.listdir(base_dir)
    l.sort(key=lambda fn: os.path.getmtime(base_dir + fn) if not os.path.isdir(base_dir + fn) else 0)
    name = l[-1]
    inputfile = base_dir + name
    data = pd.read_csv(inputfile, index_col=0, header=0,encoding='gb2312')
    columns=list(data.columns)
    return JsonResponse(columns,safe=False)

编写计算回归方程的函数,

@csrf_exempt
def ols_res(request):
    base_dir = 'media/data_mining/'
    l = os.listdir(base_dir)
    l.sort(key=lambda fn: os.path.getmtime(base_dir + fn) if not os.path.isdir(base_dir + fn) else 0)
    name = l[-1]
    inputfile = base_dir + name
    data = pd.read_csv(inputfile, index_col=0, header=0,encoding='gbk')
    data.dropna()
    x=request.GET.get('x','')
    y = request.GET.get('y', '')
    x=x.split(",")
    print(x)
    print(y)
    x_in=data[x]
    y_in=data[y]
    print(x_in)
    linreg = LinearRegression()
    linreg.fit(x_in, y_in)
    obj={}
    obj['y']=y
    obj['x']=x
    obj['intercept_'] = linreg.intercept_.tolist()
    obj['coef'] = linreg.coef_.tolist()
    return HttpResponse(json.dumps(obj),content_type="application/json")

(6)后期对前端界面进行美化。

你可能感兴趣的:(长江三角洲城市群数据平台(5)-Data_mining(ols))