AI计算算法

时间:2019-04-04 03:49:09

标签: artificial-intelligence

我正在尝试使用人工智能算法替换标识正确数量的系统。如果数量是数字的倍数,则数量为“是”,如果数量不是数字的倍数,则数量为“否”。另外,它使用的其他因素是>和<一个数字。我尝试使用scikit学习RandomForestClassifier算法,但是没有对乘法器进行训练。您能否提出最适合此算法的算法?谢谢。

我尝试使用scikit学习RandomForestClassifier算法

import sklearn
import seaborn as sns
import pandas as pd
import numpy as np
from sklearn import datasets
from sklearn.neural_network import MLPClassifier
from sklearn import tree
from sklearn.preprocessing import scale
import matplotlib.pyplot as plt
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import confusion_matrix, classification_report
from sklearn.preprocessing import StandardScaler, LabelEncoder
from sklearn.model_selection import train_test_split
%matplotlib inline
from sklearn import svm
from TFANN import ANNR
from google.colab import files
files.upload()
data=pd.read_csv('qty.csv')

data.head()
data.info()
validate=LabelEncoder()
data['Type']=validate.fit_transform(data['Type'])
data['ans']=validate.fit_transform(data['ans'])



data.head()
sns.countplot(data['ans'])
X=data.drop('ans', axis=1)
y = data['ans']

X_train, X_test, y_train, y_test= train_test_split(X,y,test_size=0.2, random_state=42)
#sc=StandardScaler()
#X_train=sc.fit_transform(X_train)
#X_test=sc.fit_transform(X_test)
print(X_train)
rfc = RandomForestClassifier(n_estimators=200)
rfc.fit(X_train,y_train)
pred_rfc=rfc.predict([[0,12,20]])
#print(X_test)
print (pred_rfc)

如果我要在下面预测12的倍数,则enter code here不能正常工作。如何使用AI算法训练倍数? pred_rfc = rfc.predict([[0,12,2400]])

1 个答案:

答案 0 :(得分:0)

在这种情况下,我将首先进一步定义问题。您是否需要它仅对您的训练集中的倍数有效,在指定范围内的所有倍数还​​是不受约束的所有倍数?

如果您只需要它为训练集中的值工作,那么大多数ML算法就可以正常工作。如果您需要它对指定范围内的所有值进行运算,那么大多数ML算法仍然可以正常工作,但是有些算法可能需要进行一些其他改进。如果您需要它可用于所有倍数,则需要着重选择合适的基础模型。

像您在此处使用的随机森林不会超出训练数据的极值(最高和最低),因为基础模型不会推断出训练数据的极值。但是,有很多可以精确匹配倍数的替代模型,例如正弦波。正弦波的周期决定了值到达1的频率,因此,如果您从数据中了解正确的周期,则可以在一定程度上成功地预测所有倍数。