【发布时间】:2020-11-12 03:37:06
【问题描述】:
我正在使用 KNeighborsClassifier 用著名的鸢尾花数据集对花朵进行分类。
我已经完成了培训,现在将其部署为网络应用程序。
但问题是,当我在本地测试应用程序时,它会显示这一点,
AttributeError: 'KNeighborsClassifier' object has no attribute 'n_samples_fit_'
我google了很多,还是找不到解决办法。
应用在这里,https://github.com/josephofiowa/GA_iris,顺便说一句不是我写的。
我在这里找到了一个帖子,但它是关于图像识别https://github.com/pliablepixels/zmeventnotification/issues/188 我不确定它是否相关,但我仍然在这里发布。说是版本问题,怎么降级呢?
谢谢你们!
from flask import Flask, render_template, session, redirect, url_for
from flask.ext.wtf import Form
from wtforms import IntegerField, StringField, SubmitField, SelectField, DecimalField
from wtforms.validators import Required
import pickle
from sklearn import datasets
# Initialize Flask App
app = Flask(__name__)
print("loading my model")
with open('model.pkl', 'rb') as handle:
machine_learning_model = pickle.load(handle)
print("model loaded")
# Initialize Form Class
class theForm(Form):
param1 = DecimalField(label='Sepal Length (cm):', places=2, validators=[Required()])
param2 = DecimalField(label='Sepal Width (cm):', places=2, validators=[Required()])
param3 = DecimalField(label='Petal Length (cm):', places=2, validators=[Required()])
param4 = DecimalField(label='Petal Width (cm):', places=2, validators=[Required()])
submit = SubmitField('Submit')
@app.route('/', methods=['GET', 'POST'])
def home():
print(session)
form = theForm(csrf_enabled=False)
if form.validate_on_submit(): # activates this if when i hit submit!
# Retrieve values from form
session['sepal_length'] = form.param1.data
session['sepal_width'] = form.param2.data
session['petal_length'] = form.param3.data
session['petal_width'] = form.param4.data
# Create array from values
flower_instance = [[(session['sepal_length']),(session['sepal_width']),(session['petal_length']),(session['petal_width'])]]
# Return only the Predicted iris species
flowers = ['setosa', 'versicolor', 'virginica']
session['prediction'] = flowers[machine_learning_model.predict(flower_instance)[0]]
# Implement Post/Redirect/Get Pattern
return redirect(url_for('home'))
return render_template('home.html', form=form, **session)
# Handle Bad Requests
@app.errorhandler(404)
def page_not_found(e):
return render_template('404.html'), 404
app.secret_key = 'super_secret_key_shhhhhh'
if __name__ == '__main__':
app.run(debug=True)
【问题讨论】:
-
欢迎堆栈溢出。请花一些时间做tour 并学习如何How to Ask。您的帖子包含指向可能会更改、无法复制等的图像或存储库的链接。在此处发布您迄今为止拥有的相关代码并说明哪里出了问题。
-
谢谢罗纳德,我编辑了这个问题,希望现在更清楚了。
标签: flask web-applications classification attributeerror knn