達觀杯_構建模型(一)linearSVM
阿新 • • 發佈:2018-12-11
特徵:tfidf(word)+tfidf(article)
""" 1.特徵:tfidf(word)+tfidf(article) 2.模型:linearsvm 3.引數:C=5 """ from sklearn.svm import LinearSVC # 支援向量機 from sklearn.calibration import CalibratedClassifierCV import pandas as pd import time import pickle time_start = time.time() # 讀取特徵 with open('tfidf(word+article).pkl','rb') as f: x_train, y_train, x_test = pickle.load(f) # 構建模型 clf = CalibratedClassifierCV(base_estimator=LinearSVC(C=5)) clf.fit(x_train, y_train) # 儲存模型 with open('linearsvm(C=5)_tfidf(word+article).pkl','wb') as f: pickle.dump(clf,f) # 預測結果:分類結果和概率結果 y_test = clf.predict(x_test) y_test_proba = clf.predict_proba(x_test) # 儲存模型輸出的分類檔案和概率檔案 y_test = [i+1 for i in y_test.tolist()] y_test_proba = y_test_proba.tolist() df_result = pd.DataFrame({'id':range(102277),'class':y_test}) df_proba = pd.DataFrame({'id':range(102277),'proba':y_test_proba}) df_result.to_csv('./ls(C=5)_tfidf(word+article).csv',index=False) df_proba.to_csv('./ls(C=5)_tfidf(word+article)_proba.csv',index=False) time_end = time.time() print('共耗時:{:.2f}min'.format((time_end-time_start)/60))
特徵:linearsvm-tfidf(word)+lr-tfidf(article)
""" 1.特徵:linearsvm-tfidf(word)+lr-tfidf(article) 2.模型:linearsvm 3.引數:C=5 """ from sklearn.svm import LinearSVC # 支援向量機 from sklearn.calibration import CalibratedClassifierCV import pandas as pd import time import pickle time_start = time.time() # 讀取特徵 with open('linearsvm-tfidf(word)+lr-tfidf(article).pkl','rb') as f: x_train, y_train, x_test = pickle.load(f) # 構建模型 clf = CalibratedClassifierCV(base_estimator=LinearSVC(C=5)) clf.fit(x_train, y_train) # 儲存模型 with open('linearsvm(C=5)_tfidf(linearsvm_w+lr_a).pkl','wb') as f: pickle.dump(clf,f) #或者用 joblib.dump(clf, "檔名.pkl") 儲存模型 # 預測結果:分類結果和概率結果 y_test = clf.predict(x_test) y_test_proba = clf.predict_proba(x_test) # 儲存模型輸出的分類檔案和概率檔案 y_test = [i+1 for i in y_test.tolist()] y_test_proba = y_test_proba.tolist() df_result = pd.DataFrame({'id':range(102277),'class':y_test}) df_proba = pd.DataFrame({'id':range(102277),'proba':y_test_proba}) df_result.to_csv('./ls(C=5)_tfidf(ls_w+lr_a).csv',index=False) df_proba.to_csv('./ls(C=5)_tfidf(ls_w+lr_a)_proba.csv',index=False) time_end = time.time() print('共耗時:{:.2f}min'.format((time_end-time_start)/60))