gpt4 book ai didi

python - 如何将 py 文件中的机器学习算法集成到 django 网站中?

转载 作者:行者123 更新时间:2023-11-30 09:45:13 28 4
gpt4 key购买 nike

我正在使用随机森林算法来用Python预测大学辍学率,该算法已经完成,现在我必须使用该文件并能够从网站运行它,我正在使用django,但我没有知道我如何让它工作,我在 View 中导入文件,但它只显示一行,它甚至没有像我在 jupyter 中运行文件时那样的结构,所以如果有人知道一些东西,我会非常高兴感恩。

抱歉,如果有点难以理解,英语不是我的母语。

这就是算法

 import numpy as np
from sklearn.ensemble import RandomForestClassifier
from sklearn import metrics
import pandas as pd
from sklearn.feature_selection import SelectKBest

dataset = pd.read_csv('C:/Users/danni/OneDrive/Documents/Universidad/2018/Tesis/encuestas/Nueva carpeta/Nueva carpeta/SinRanking/2005_2017_SOLO_PRIMERO_Y_SEGUNDO.csv', delimiter=";")


datos2 = dataset['F_Nac']
i = 0
a = []
while i < len(datos2):
value2 = datos2[i]
first = value2[6:10]

year = first
a_ingreso = dataset['A_Ingreso']
a.append(a_ingreso[i] - int(year))
i += 1
dataset['edad_ingreso']=a;



#calculamos la edad de ingreso a la universidad
def calcula_dif_years_eg_in(anio,cuando):
return anio - cuando

dataset['a_egresado_colegio']=dataset.apply(lambda x: calcula_dif_years_eg_in(x['A_Ingreso'],x['A_Egreso_Colegio']), axis=1);


dataset = dataset.drop(["F_Nac","A_Ingreso","A_Egreso_Colegio","Via_Ingreso"], axis=1)


# cargamos las variables predictoras
predictors = dataset.drop(['Deserto'], axis=1)
# y estos son los resultados que se obtienen, en el mismo orden
targets = dataset['Deserto']


best=SelectKBest(k=10)
X_new = best.fit_transform(predictors, targets)
X_new.shape
selected = best.get_support(indices=True)
print(predictors.columns[selected])



#datos desde el 2005 al 2015
X_train = predictors[0:567]
X_test = predictors[568:632]
#datos del 2016
y_train = targets[0:567]
y_test = targets[568:632]



modelo = RandomForestClassifier(
random_state = 1, # semilla inicial de aleatoriedad del algoritmo
n_estimators = 5, # cantidad de arboles a crear
min_samples_split = 0.5, # cantidad minima de observaciones para dividir un nodo
min_samples_leaf = 8, # observaciones minimas que puede tener una hoja del arbol
n_jobs = -1 # tareas en paralelo. para todos los cores disponibles usar -1
)
modelo.fit(X_train[predictors.columns[selected]].values, y_train)


prediccion = modelo.predict(X_test[predictors.columns[selected]].values)

modelo.score(X_train[predictors.columns[selected]], y_train)


modelo.score(X_test[predictors.columns[selected]], y_test)



print(metrics.classification_report(y_true=y_test, y_pred=prediccion))
print(pd.crosstab(y_test, prediccion, rownames=['REAL'], colnames=['PREDICCION']))


var_imp = pd.DataFrame({
'feature':predictors.columns[selected],
'v_importance':modelo.feature_importances_.tolist()
})
print (var_imp.sort_values(by = 'v_importance', ascending=False))




#Curvas de aprendizaje
from sklearn.learning_curve import learning_curve

train_sizes, train_scores, test_scores = learning_curve(estimator=modelo,
X=X_train, y=y_train,
train_sizes=np.linspace(0.1, 1.0, 10), cv=10,
n_jobs=-1)

train_mean = np.mean(train_scores, axis=1)
train_std = np.std(train_scores, axis=1)
test_mean = np.mean(test_scores, axis=1)
test_std = np.std(test_scores, axis=1)


import matplotlib.pyplot as plt
import seaborn as sns
get_ipython().run_line_magic('matplotlib', 'inline')
sns.set_palette("deep",desat=.6)
sns.set_context(rc={"figure.figsize":(8,4)})

# graficando las curvas
plt.plot(train_sizes, train_mean, color='r', marker='o', markersize=5,
label='entrenamiento')
plt.fill_between(train_sizes, train_mean + train_std,
train_mean - train_std, alpha=0.15, color='r')
plt.plot(train_sizes, test_mean, color='b', linestyle='--',
marker='s', markersize=5, label='evaluacion')
plt.fill_between(train_sizes, test_mean + test_std,
test_mean - test_std, alpha=0.15, color='b')
plt.grid()
plt.title('Curva de aprendizaje')
plt.legend(loc='upper right')
plt.xlabel('Cant de ejemplos de entrenamiento')
plt.ylabel('Precision')
plt.show()



i = 0
a = []
while i < len(X_test):
a.append(modelo.predict(X_test[predictors.columns[selected]])[i])
i += 1


print(a)


X_test['x']=a

X_test
print(X_test.groupby('x').size())

最佳答案

有几个选项。

  1. 将其作为一项单独的服务运行,以便多个应用程序可以独立使用它。为此,您需要围绕机器学习实现创建一个 API(应公开所需的功能,例如训练模型、预测等)并单独部署/托管它。这将您的网络应用程序和实际的机器学习的关注点分开,因此这是我的首选方式,除非整个应用程序很小(例如概念证明)。
  2. 将所有代码(包括其中的机器学习部分)放在一起,并将其部署为单个整体应用程序。您将需要一些持久的二进制(例如文件)存储来存储经过训练的模型(例如 Google 云存储),其中有多个应用程序(具有自己的 ML 程序,可能有所不同,但要保持与您的训练模型的兼容性,如果他们想分享它)。如果您关心的只是首先让某些东西进入工作状态(例如概念验证),那么这应该更简单、更快。

关于python - 如何将 py 文件中的机器学习算法集成到 django 网站中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53423905/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com