小编Zac*_*ach的帖子

在 scikit-learn 中使用什么估算器?

这是我第一次接触机器学习,所以我试图弄清楚这一切是如何运作的。我有一个数据集,我在其中汇总了每个球员的所有统计数据,以便与我的高中棒球队一起比赛。我还有一份从我高中进入美国职业棒球大联盟的所有球员的名单。我想做的是将数据分成训练集和测试集,然后将其提供给 scikit-learn 包中的某些算法并预测制作 MLB 的概率。

所以我查看了许多来源,发现这个备忘单表明我从线性 SVC 开始。 SciKitLearn 备忘单

因此,根据我的理解,我需要将我的数据分解为训练样本,其中每一行是一名球员,每一列是关于球员的一段数据(击球率,基本百分比,yada,yada),X_train;以及每个球员单行的相应真值矩阵,简单地为 1(在 MLB 中比赛)或 0(未在 MLB 中比赛),Y_train。从那里,我只做 Fit(X,Y) 然后我可以使用 predict(X_test) 来查看它是否获得了正确的 Y_test 值。

这看起来是算法、方法和应用的合乎逻辑的选择吗?

编辑以提供更多信息:数据由 20 个特征组成,例如上场次数、击球次数、本垒打次数、三振出局次数等。大多数是关于球员职业生涯的基本统计数据;一些是击球率等比率。

我总共有大约 10k 行可以处理,因此我可以根据它拆分数据;但我不知道如何最佳地分割数据,因为 <1% 已经成为 MLB。

algorithm machine-learning python-2.7 scikit-learn

5
推荐指数
0
解决办法
1905
查看次数

在 Flask 中处理用户上传的图像

我构建了一个模型,可以接收图像,在像素级别读取图像,然后确定图像中是否包含猫或狗。出于教育目的,我现在尝试将其放入 Flask 应用程序中(之前从未使用过 Flask)。到目前为止我所做的工作:用户上传图像,图像由 Flask 保存到磁盘,图像被操作并发送到模型,模型预测,然后我从模板生成输出页面。现在我想显示用户上传的图像,但遇到了问题。适用的代码在这里:

import flask
from flask import request, render_template
import numpy as np
import pandas as pd
from copy import deepcopy
from werkzeug import secure_filename
from PIL import Image
import catdog

# Initialize the app
app = flask.Flask(__name__)

@app.route("/")
def viz_page():
    with open("frontend.html", 'r') as viz_file:
        return viz_file.read()

@app.route("/uploader", methods=["GET","POST"])
def get_image():
    if request.method == 'POST':
        f = request.files['file']
        sfname = 'images/'+str(secure_filename(f.filename))
        f.save(sfname)

        clf = catdog.classifier()
        #clf.save_image(f.filename)

        return render_template('result.html', pred = clf.predict(sfname), imgpath = sfname)


#--------- …
Run Code Online (Sandbox Code Playgroud)

python flask

5
推荐指数
1
解决办法
1万
查看次数

将巨大的 Keras 模型加载到 Flask 应用程序中

我正在构建一个小型 Flask 应用程序,它在幕后使用卷积神经网络对用户上传的图像进行预测。如果我像这样加载它,它就会起作用:

@app.route("/uploader", methods=["GET","POST"])
def get_image():
    if request.method == 'POST':
        f = request.files['file']
        sfname = 'static/'+str(secure_filename(f.filename))
        f.save(sfname)
        clf = catdog.classifier()
        return render_template('result.html', pred = clf.predict(sfname), imgpath = sfname)
Run Code Online (Sandbox Code Playgroud)

但是,这需要在用户添加图像后加载分类器(clf)。这需要一段时间,因为它需要从 pickle 文件设置 200 层以上神经网络的所有权重。

我想要做的是在应用程序生成时加载所有权重。为此,我尝试了以下操作(删除 HTML 模板/导入/应用程序启动的不相关代码):

# put model into memory on spawn
clf = catdog.classifier()
# Initialize the app
app = flask.Flask(__name__)

@app.route("/uploader", methods=["GET","POST"])
def get_image():
    if request.method == 'POST':
        f = request.files['file']
        sfname = 'static/'+str(secure_filename(f.filename))
        f.save(sfname)
        return render_template('result.html', pred = clf.predict(sfname), imgpath = sfname)
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我得到了这个回溯(跳过顶部的所有烧瓶特定跟踪):

 File "/Users/zachariahmiller/Documents/Metis/test_area/flask_catdog/flask_backend.py", …
Run Code Online (Sandbox Code Playgroud)

python flask keras

3
推荐指数
1
解决办法
3161
查看次数