nlp問題本3質其實就是資料為文字,預處理方式不同的機器學習問題。
所以就我復現kaggle比賽的一些經驗我可以這麼寫一點經驗。
1.預處理
這個真的是重要中的重要,如果資料集不好,用什麼方法效率都很低
相對於英文的預處理,有著非常複雜的去資料的過程。中文感覺只需要乙個jieba.stopword和corpus就行。
在這裡其實可以用pandas讀取資料後,再積累一些堆積的方法,然後一次性給它割的乾乾淨淨,這樣十分光滑,減少痛苦。
2.模型搭建。
我見過兩種模型
1.使用pipeline將特徵提取,模型搭建,引數優化集合在一起。
2.是這種方法,相當於把各種模型進行模組化了,例如:
def model_lr():
# creating classifier
clf = logisticregression(tol=1e-8, penalty='l2', c=2)
# training classifier
clf.fit(x_train, label_train)
# model type
print("model: ",type(clf))
# predicting probabilities
p = clf.predict_proba(x_val)
return (clf.predict(x_val),p)
def model_svm():
# creating classifier
clf = svm.linearsvc(penalty='l2', loss='squared_hinge',tol=1e-8)
# training classifier
clf.fit(x_train, label_train)
# model type
print("model: ",type(clf))
return clf.predict(x_val)
# bernoulli ***** baiyes
def model_bernoullinb():
# creating classifier
clf = nb.bernoullinb(alpha=1.0, binarize=0.0)
# training classifier
clf.fit(x_train, label_train)
# model type
print("model: ",type(clf))
# predicting probabilities
p = clf.predict_proba(x_val)
return (clf.predict(x_val),p)
衡量標準有這些
def model_evaluation(model,label_test):
#accuracy=np.mean(model == label_test)
#print("%.4f"%np.mean(model == label_test))
# confusion matrix:
cm = confusion_matrix(label_test, model, labels=none, sample_weight=none)
tp, fn, fp, tn = cm[0][0], cm[0][1], cm[1][0], cm[1][1]
precision= float(tp)/(tp+fp)
recall = float(tp)/(tp+tn)
accuracy = np.mean(model == label_test)
print_results (precision, recall, accuracy)
return accuracy
def print_results (precision, recall, accuracy):
banner = "here is the classification report"
print ('\n',banner)
print ('=' * len(banner))
print (' '.format('precision',precision*100))
print (' '.format('recall',recall*100))
print (' '.format('accuracy',accuracy*100))
#print("*****precision****")
#print("%.4f"%(tp/(tp+fp)))
#print("*****recall****")
#print("%.4f"%(tp/(tp+tn)))
#return accuracy
這樣就形成了乙個模組就可以進行愉快的進行各種演算法模型的研究了。
pytorch碎碎念 回歸問題
根據b站莫煩python邊學邊打,只有自己打一遍才能發現容易發生好多錯誤啊 昨晚配置pytorch很順利!一遍就好了 環境 cuda10.0 python3.7 pytorch1.2.0 gpu 1660ti 現在已經有了pytorch1.4.0 似乎tensor和variable的用法有了改變 但...
生活碎碎念
工作後,總是會有各種各樣的場合介紹自己,姓名呀 愛好啦 哪的人呢 每每說到愛好,總是覺得不知道應該怎樣表達。我喜歡旅行,喜歡美食,喜歡做飯 中餐西餐各種料理,對牛排和義大利面情有獨鍾 我也喜歡運動啊,籃球足球羽毛球 當然啦,籃球足球只是圍觀,是科比和梅西的無腦粉絲 喜歡滑冰和滑雪 技術雖不高,但也算...
技術碎碎念
註冊過後還沒怎麼來過,這次面試在最後一輪失敗了,不可推卸的是自己沒把相關思考與想法記錄下來,好記性不如亂鼻頭。回來後發了會兒呆。想到今天召開大家開會的時候,有人提出策劃發現bug了不要馬上就跑過來了,打斷思緒,上個bug還沒解決就又帶入了混亂。剛開始想是不是要用個管理工具,比如禪道,來管理這些問題,...