问题描述
我创建了一个ML模型来测试密码强度。数据集的形状为(669639,127),如果我通过密码/变量来测试模型,则会得到ValueError,密码具有1个功能,预期为127。因此,我尝试将密码/变量的形状调整为(1,127)。 ),但无法重整尺寸为1到(1,127)的数组。任何帮助将不胜感激,谢谢。 `#!/ usr / bin / env python
编码:utf-8
在[2]中:
import seaborn as sns
import pandas as pd
import numpy as np
import warnings
warnings.filterwarnings('ignore')
在[3]中:
data = pd.read_csv('D:\Datasets\strength.csv',',error_bad_lines=False)
在[4]中:
data
在[5]中:
data.isna().sum()
在[6]中:
data.dropna(inplace = True)
在[7]中:
data.isna().sum()
在[8]中:
sns.countplot(data['strength'])
在[9]中:
data['strength'].value_counts()
在[10]中:
password_tuple = np.array(data)
在[11]中:
import random
random.shuffle(password_tuple)
在[12]中:
X = [labels[0] for labels in password_tuple]
y = [labels[1] for labels in password_tuple]
在[13]中:
def char_tokenizer(input):
characters = []
for i in input:
characters.append(i)
return characters
在[14]中:
from sklearn.feature_extraction.text import TfidfVectorizer
tfidf = TfidfVectorizer(tokenizer = char_tokenizer)
X = tfidf.fit_transform(X)
在[15]中:
X.shape
在[16]中:
from sklearn.linear_model import LogisticRegression
logReg = LogisticRegression(penalty='l2',multi_class='ovr')
logReg.fit(X,y)
在[17]:
print(logReg.score(X,y))
在[18]中:
import joblib
joblib.dump(logReg,'LogisticRegression_model.joblib')
在[17]:
from sklearn.naive_bayes import BernoulliNB
bnb = BernoulliNB()
bnb.fit(X,y)
在[18]中:
print(bnb.score(X,y))
在[19]中:
import joblib
joblib.dump(bnb,'NaiveBayes_model.joblib')
在[20]中:
from sklearn.tree import DecisionTreeClassifier
dtc = DecisionTreeClassifier()
dtc.fit(X,y)
在[21]:
print(dtc.score(X,y))
在[22]:
import joblib
joblib.dump(logReg,'DecisionTree_model.joblib')
在[23]:
from sklearn.ensemble import RandomForestClassifier
rfc = RandomForestClassifier(n_estimators=100,max_depth=50,criterion='entropy')
rfc.fit(X,y)
在[24]中:
print(rfc.score(X,y))
在[25]:
import joblib
joblib.dump(rfc,'RandomForest_model.joblib')
在[35]中:
array =['dbswjwiqmd']
ar2 = np.array([array])
ar2.reshape(1,127)
logReg.predict(ar2)
`
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)