赞
踩
- import pandas as pd
- from sklearn.feature_extraction.text import CountVectorizer
- from sklearn.model_selection import train_test_split
- from sklearn.naive_bayes import MultinomialNB
- from sklearn.metrics import accuracy_score, confusion_matrix
- import openpyxl
- import joblib
-
- # 1. 准备训练数据集
- data = pd.read_csv('address_data.csv', encoding='GBK')
-
- # 2. 特征工程
- vectorizer = CountVectorizer(max_features=7000)
- X = vectorizer.fit_transform(data['Address']).toarray()
- y = data['IsFake']
-
- # 检查是否已存在模型文件
- try:
- classifier = joblib.load('model.joblib')
- model_trained = True
- except FileNotFoundError:
- classifier = None
- model_trained = False
-
- while True:
- user_input = input("请输入 '开始训练' 或 '开始预测' 或 'exit' 退出: ")
-
- if user_input.lower() == 'exit':
- if classifier:
- # 退出前保存模型
- joblib.dump(classifier, 'model.joblib')
- print("退出程序。")
- break
- elif user_input.lower() == '开始训练':
- if not classifier:
- # 可在这里增加其他模型算法
- classifier = MultinomialNB()
- # 开始训练模型
- X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
- classifier.fit(X_train, y_train)
- y_pred = classifier.predict(X_test)
- accuracy = accuracy_score(y_test, y_pred)
- confusion = confusion_matrix(y_test, y_pred)
- print("模型已经训练完成。")
- print("准确性: ", accuracy)
- print("混淆矩阵:\n", confusion)
- model_trained = True
- elif user_input.lower() == '开始预测':
- if not model_trained:
- print("请先训练模型,然后再进行预测。")
- else:
- # 加载已训练的模型
- if not classifier:
- classifier = joblib.load('model.joblib')
- # 加载新数据集进行预测
- new_data = pd.read_csv('new_address_data.csv', encoding='GBK')
- X_new = vectorizer.transform(new_data['Address']).toarray()
- predictions = classifier.predict(X_new)
-
- # 将预测结果存储在一个新的数据框中
- new_data['Predicted_IsFake'] = predictions
-
- # 导出预测结果到一个 Excel 文件
- new_data.to_excel('address_predictions.xlsx', index=False, engine='openpyxl') # 指定所需的 Excel 文件名
-
- print("预测结果已保存到 'address_predictions.xlsx' 文件中")
- else:
- print("无效的输入,请输入 '开始训练' 或 '开始预测' 或 'exit'。")
当我们面对一个乱写的地址时,该怎么利用机器去学习,让机器通过模型去帮助我们判断呢?
本篇基于朴素索叶斯模型去开发代码
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。