рдкрд░рд┐рдЪрдп
рдЖрдЬ рдореИрдВ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рдорд╢реАрди рд╕реАрдЦрдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рдЖрд╡реЗрджрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╣рд╛рдиреА рдЬрд╛рд░реА рд░рдЦреВрдВрдЧрд╛ред рдкрд┐рдЫрд▓реЗ
рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ рдХреНрд░реЗрдбрд┐рдЯ рд╕реНрдХреЛрд░рд┐рдВрдЧ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдирд┐рдкрдЯрд╛рдпрд╛ред рдиреАрдЪреЗ рдореИрдВ рдЙрд╕реА
рдЯреВрд░реНрдирд╛рдореЗрдВрдЯ рдХреА рдПрдХ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рд╣реИ, "рдкрд╛рд╕рдкреЛрд░реНрдЯ рдкрд░ рдХрд╛рд░реНрдп" (рдХрд╛рд░реНрдп рд╕рдВрдЦреНрдпрд╛ 2)ред
рд╕рдорд╛рдзрд╛рди рдкрд╛рдареНрдп рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдПрдХ рдореЙрдбрд▓ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдХреЛрдбрд┐рдВрдЧ
рджрд┐рдЦрд╛рдПрдЧрд╛ (
рдкрдВрдбреЛрдВ ,
рд╕реНрдХрд┐рдХрд┐рдЯ-рд▓рд░реНрди ,
рдкреЙрдореЙрд░реНрдлреА )ред
рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдмрдпрд╛рди
рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдЙрдиреНрд╣реЗрдВ рд╕рд╛рдл рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдФрд░ рдЬрдм рдмреИрдВрдХрд┐рдВрдЧ рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рднрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреВрд░реНрдг рдкрд╛рд╕рдкреЛрд░реНрдЯ рдбреЗрдЯрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдлрд╝реАрд▓реНрдб "рдкрд╛рд╕рдкреЛрд░реНрдЯ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ", рд╕рдВрднрд╛рд╡рд┐рдд рдЧреНрд░рд╛рд╣рдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╣реА рд╡рд┐рднрд╛рдЧ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╡рд░реНрддрдиреА рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрдИ рд╕реМ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреА рд╣реИред рдпрд╣ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдЕрдиреНрдп рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рднрд░рддреЗ рд╕рдордп рдЧрд▓рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: "рд╡рд┐рднрд╛рдЧ рдХреЛрдб", "рд╢реНрд░реГрдВрдЦрд▓рд╛ / рдкрд╛рд╕рдкреЛрд░реНрдЯ рд╕рдВрдЦреНрдпрд╛"ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, "рдпреВрдирд┐рдЯ рдХреЛрдб" рдФрд░ "рдкрд╛рд╕рдкреЛрд░реНрдЯ рдЬрд╛рд░реА рдХрд░рдиреЗ рд╡рд╛рд▓реЗ" рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдХрд╛рд░реНрдп
рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕реЗрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░
рдкрд░реАрдХреНрд╖рдг рд╕реЗрдЯ рд╕реЗ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдпреВрдирд┐рдЯ рдХреЛрдб рдХреЛ рд╕рдореНтАНрдорд┐рд▓рд┐рдд рдХрд░рдирд╛ рд╣реИред
рдбреЗрдЯрд╛ рдкреНрд░реАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ
рдбреЗрдЯрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ:
from pandas import read_csv import pymorphy2 from sklearn.feature_extraction.text import HashingVectorizer from sklearn.cross_validation import train_test_split from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import accuracy_score, roc_auc_score from sklearn.decomposition import PCA train = read_csv('https://static.tcsbank.ru/documents/olymp/passport_training_set.csv',';', index_col='id' ,encoding='cp1251') train.head(5)
| passport_div_code | passport_issuer_name | passport_issue_month / рд╡рд░реНрд╖ |
---|
рдЖрдИрдбреА | | | |
---|
1 | 422,008 | KEMEROVSK рдХреНрд╖реЗрддреНрд░ рдХреА рдмреЗрд▓реНрдЯ | 11M2001 |
---|
2 | 500,112 | рдкрд╣рд╛рдбрд╝ рдореЗрдВ рдЯреАрдкреА рдирдВрдмрд░ 2ред рдореЛ рджреНрд╡рд╛рд░рд╛ рд░реВрд╕ рдХреЗ рдирдЯ-рдЬрд╝реБрдЗрд╡реЛ OUFMS ... | 03M2009 |
---|
3 | 642,001 | рд╡реЛрд▓реНрдЧрд╛ ROVD GOR.SARATOV | 04M2002 |
---|
4 | 162,004 | рдХрд╛рдЬрд╝рд╛рди рд╢рд╣рд░ рдХреЗ рдореЛрд╕рдХреЛ рдЬрд┐рд▓реЗ рдХреА рдПрдЯреАрд╕реА | 12M2002 |
---|
5 | 80,001 | рдПрд▓рд┐рд╕реНрдЯ рдореЗрдВ рдЖрд░рдИрдПрд╕ рдХрд╛рд▓рд┐рдорд┐рдпрд╛ рдкрд░ рд░рд╢рд┐рдпрд╛ рдХреЗ рдХрд╛рд░реНрдпрд╛рд▓рдп рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ | 08M2009 |
---|
рдЕрдм рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдХрд╛рдИ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП "рдкрд╛рд╕рдкреЛрд░реНрдЯ рдЬрд╛рд░реА рдХрд░рдиреЗ рд╡рд╛рд▓реЗ" рдХреНрд╖реЗрддреНрд░ рдХреЛ рдХреИрд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдХрд░рддреЗ рд╣реИрдВ:
example_code = train.passport_div_code[train.passport_div_code.duplicated()].values[0] for i in train.passport_issuer_name[train.passport_div_code == example_code].drop_duplicates(): print i
рдХрд╛рд░реЗрд▓рд┐рдпрд╛ рдХреЗ рдЧреНрд░рд╛рдореАрдг рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд░реВрд╕ рдХреЗ рдПрдлрдПрдордПрд╕ рдХреА рдЬрдорд╛рдмрдВрджреАред рдЖрд░-рдИ
рдореЗрдзрд╛рд╡рд┐рдпреЛрдВ рдХреА рднрд░реНрддреА рдореЗрдВ рдЖрд░ред рдХрд░реЗрд▓рд┐рдпрд╛ рдореЗрдВ рд░реВрд╕ рдХреЗ рдПрдлрдПрдордПрд╕ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди
рдореЗрдзрд╛рд╡рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЖрд░рдИрдПрд╕ рдХрд░реЗрд▓рд┐рдпрд╛ рдкрд░ рд░реВрд╕ рдХреЗ рдПрдлрдПрдордПрд╕ рдХреА рдЬрдорд╛рд╡
рдордзреНрдпрдпреБрдЧреАрди рдЬрд┐рд▓реЗ рдореЗрдВ рдХрд░реЗрд▓рд┐рдпрд╛ рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдордВрдбрд▓ рдореЗрдВ рд░реВрд╕ рдХреЗ рдПрдлрдПрдордПрд╕ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐
рдореЗрдзрд╛рд╡рд┐рдпреЛрдВ рдХреЗ рд░рд╛рдЬреНрдп рдмреИрдВрдХ рдореЗрдВ рдХрд╛рд░реЗрд▓рд┐рдпрд╛ рдХреЗ рд░реВрд╕ рдореЗрдВ рд░реБрд╕
Medvezhyegorsk рдЬрд┐рд▓реЗ рдореЗрдВ рдХрдЬрд╛рдХрд┐рд╕реНрддрд╛рди рдЧрдгрд░рд╛рдЬреНрдп рдХреЗ рд▓рд┐рдП рд░реВрд╕ рдХреА рд╕рдВрдШреАрдп рдкреНрд░рд╡рд╛рд╕рди рд╕реЗрд╡рд╛
рдХрд░реЗрд▓рд┐рдпрд╛ рдореЗрдбреАрд╡реЗрдЬрд╝рдЧрд░реНрд╕рдХреА рдЖрд░-рд╡рди рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдордВрдбрд▓ рдореЗрдВ рд░реВрд╕ рдХреЗ рдПрдлрдПрдордПрд╕ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐
рдордзреНрдпрдпреБрдЧреАрди рдЬрд┐рд▓реЗ рдореЗрдВ рдХрдЬрд╛рдЦрд╕реНрддрд╛рди рдХреЗ рд░рд╛рдЬреНрдп рдореЗрдВ рд░реВрд╕ рдХреЗ рдПрдлрдПрдордПрд╕ рдХреЗ рд╕рдВрд░рдХреНрд╖рдг
рдордзреНрдпрдпреБрдЧреАрди рдЬрд┐рд▓реЗ рдореЗрдВ рдХреЛрд░реЛрд▓рд┐рдпрд╛ рдХреЗ рдЧрдгрд░рд╛рдЬреНрдп рдореЗрдВ рд░реВрд╕ рдХреЗ рдПрдлрдПрдордПрд╕ рдХреЗ рд╕рдВрд░рдХреНрд╖рдг
Medvezhyegorsk рдЬрд┐рд▓реЗ рдХреЗ рдЖрд░ рдХрд╛рд░реЗрд▓рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд░реВрд╕ рдХреА рд╕рдВрдШреАрдп рдкреНрд░рд╡рд╛рд╕рди рд╕реЗрд╡рд╛
рдордзреНрдпрдкреНрд░рджреЗрд╢ рдореЗрдВ рдХрд░реЗрд▓рд┐рдпрд╛ рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдордВрдбрд▓ рдореЗрдВ рд░реВрд╕ рдХреЗ рдПрдлрдПрдордПрд╕ рдХрд╛ рдЬрдорд╛рд╡
Medvezhyegorsk R-OH рдХреЗ рдХрд░реЗрд▓рд┐рдпрд╛ рдЧрдгрд░рд╛рдЬреНрдп рдХреА рд╕рдВрдШреАрдп рдкреНрд░рд╡рд╛рд╕рди рд╕реЗрд╡рд╛
MEDVEZHEGORSKIY рдПрдЯреАрдПрд╕
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрджрд╛рди рдкрд░ рдЬрд░реВрд░рдд рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЯрд┐рд▓ рд╣реИред рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рд╕рд╛рдорд╛рдиреНрдп (рдЕрджреНрд╡рд┐рддреАрдп) рд░реВрдк рдореЗрдВ рд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ред
рдЗрд╕рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ рдХрд┐ рд╕рднреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рдПрдХ рд╣реА рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рд╣реЛрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддрд╛рдХрд┐ рд╕рднреА рдЕрдХреНрд╖рд░ рдирд┐рдЪрд▓реЗ рд╣реЛ рдЬрд╛рдПрдБред рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ DataFrame рдХреЙрд▓рдо рдХреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЖрдкрдХреЛ рдПрдХ рд╕реНрддрдВрдн рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рд╕рд╛рде рд╣реА рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рдЦреЛрдЬреЛрдВ рдФрд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдиреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ:
train.passport_issuer_name = train.passport_issuer_name.str.lower() train[train.passport_div_code == example_code].head(5)
| passport_div_code | passport_issuer_name | passport_issue_month / рд╡рд░реНрд╖ |
---|
рдЖрдИрдбреА | | | |
---|
19 | 100,010 | рдХрд░реЗрд▓рд┐рдпрд╛ рдЧрдгрд░рд╛рдЬреНрдп рдореЗрдВ рд░реВрд╕реА рд╕рдВрдШреАрдп рдкреНрд░рд╡рд╛рд╕рди рд╕реЗрд╡рд╛ рдХреА рд╢рд╛рдЦрд╛ ... | 04M2008 |
---|
22 | 100,010 | рд░реВрд╕ рдХреЗ рдпреВрдПрдлрдПрдордПрд╕ рдХрд╛ рд╡рд┐рднрд╛рдЧ рдХрд░реЗрд▓рд┐рдпрд╛ рдПрдХ рднрд╛рд▓реВ рдореЗрдВ ... | 10M2009 |
---|
5642 | 100,010 | рдореЗрдбреЗ рдореЗрдВ рдХрд░реЗрд▓рд┐рдпрд╛ рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рд░реВрд╕ рдХреЗ рдпреВрдПрдлрдПрдордПрд╕ рдХреЗ рд╡рд┐рднрд╛рдЧ рджреНрд╡рд╛рд░рд╛ ... | 08M2008 |
---|
6668 | 100,010 | рдХрд░реЗрд▓рд┐рдпрд╛ рдЧрдгрд░рд╛рдЬреНрдп рдореЗрдВ рд░реВрд╕реА рд╕рдВрдШреАрдп рдкреНрд░рд╡рд╛рд╕рди рд╕реЗрд╡рд╛ рдХреА рд╢рд╛рдЦрд╛ ... | 08M2011 |
---|
8732 | 100,010 | рдХрд░реЗрд▓рд┐рдпрд╛ рдЧрдгрд░рд╛рдЬреНрдп рдореЗрдВ рд░реВрд╕реА рд╕рдВрдШреАрдп рдкреНрд░рд╡рд╛рд╕рди рд╕реЗрд╡рд╛ рдХреА рд╢рд╛рдЦрд╛ ... | 08M2012 |
---|
рд╕реА рд░рдЬрд┐рд╕реНрдЯрд░ рддрдп рдХрд┐рдпрд╛ред рдЕрдЧрд▓рд╛, рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ, рд▓реЛрдХрдкреНрд░рд┐рдп рд╕рдВрдХреНрд╖рд┐рдкреНрддрд╛рдХреНрд╖рд░ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдПрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрд┐рд▓рд╛, рд╢рд╣рд░, рдЖрджрд┐ред рд╣рдо рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред
рдкрдВрдбреЛрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрдВрдн рдХреЗ рд▓рд┐рдП рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдпреЛрдЧ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
train.passport_issuer_name = train.passport_issuer_name.str.replace(u'-(||||)*',u'') train.passport_issuer_name = train.passport_issuer_name.str.replace(u' ( |\.|((\.| )))', u' ') train.passport_issuer_name = train.passport_issuer_name.str.replace(u' (\.| )', u' ') train.passport_issuer_name = train.passport_issuer_name.str.replace(u' ([-]*)(\.)?', u' ') train.passport_issuer_name = train.passport_issuer_name.str.replace(u' (\.| |( )?)', u' ') train.passport_issuer_name = train.passport_issuer_name.str.replace(u' ', u' ')
рдЕрдм рд╣рдо рд░реВрд╕реА рдкрддреНрд░реЛрдВ, рд╣рд╛рдЗрдлрд╝рди рдФрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкрд╛рддреНрд░реЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд▓реЗрдВрдЧреЗред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдЗрдХрд╛рдЗрдпреЛрдВ рд╡рд╛рд▓реЗ рд╡рд┐рднрд╛рдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╣реА рдЗрдХрд╛рдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╛рд╕рдкреЛрд░реНрдЯ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд╕реЗ рдЖрдЧреЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдЦрд░рд╛рдм рд╣реЛ рдЬрд╛рдПрдЧреА:
train.passport_issuer_name = train.passport_issuer_name.str.replace(u' - ?', u'-') train.passport_issuer_name = train.passport_issuer_name.str.replace(u'[^- -]','') train.passport_issuer_name = train.passport_issuer_name.str.replace(u'- ',' ') train.passport_issuer_name = train.passport_issuer_name.str.replace(u' *',' ')
рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ, рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рд╕рдордЭрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬреИрд╕реЗ рдПрдЯреАрд╕реА, рдпреВрдПрдлрдПрдирдПрд╕, рдЯреАрдПрд╕рдПрдУ, рд╡реАрдПрдУ, рдЖрджрд┐, рдХреНрдпреЛрдВрдХрд┐ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЗрдирдореЗрдВ рд╕реЗ рдХрдИ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдЖрдЧреЗ рдХреА рдХреЛрдбрд┐рдВрдЧ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдкрд░ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝реЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ "рдПрдЯреАрд╕реА" рдФрд░ "рдЖрдВрддрд░рд┐рдХ рдорд╛рдорд▓реЛрдВ рдХреЗ рд╡рд┐рднрд╛рдЧ" рджреЛ рд░рд┐рдХреЙрд░реНрдб рд╣реИрдВ, рддреЛ рд╡реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдПрдиреНрдХреЛрдб рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд▓рд┐рдП рдпреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореВрд▓реНрдп рд╣реИрдВред
рддреЛ рдЪрд▓рд┐рдП рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред рдФрд░, рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк рдХрд╛ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдХреА рдорджрдж рд╕реЗ рд╣рдо рдПрдХ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдмрдирд╛рдПрдВрдЧреЗ:
sokr = {u'': u' ', u'': u'- ', u'': u' ', u'': u'- ', u'': u' ', u'': u' ', u'': u' ', u'c': u' ', u'': u' ', u'': u'- ', u'': u'- ', u'': u'- ', u'': u'- ', u'': u' ', u'': u' ', u'': u' ', u'': u' ', u'': u' ', u'': u' ', u'': u' ', u'': u' ', u'': u' ', u'': u' ', u'': u' ', u'': u' '}
рдЕрдм, рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдкрд░рд┐рдгрд╛рдореА рдЕрднрд┐рд▓реЗрдЦреЛрдВ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░реЗрдВрдЧреЗ:
for i in sokr.iterkeys(): train.passport_issuer_name = train.passport_issuer_name.str.replace(u'( %s )|(^%s)|(%s$)' % (i,i,i), u' %s ' % (sokr[i]))
рдХреНрд╖реЗрддреНрд░ "рдЬрд┐рд╕рдиреЗ рдкрд╛рд╕рдкреЛрд░реНрдЯ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рд╣реИ" рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрд╡рд╕реНрдерд╛ рдпрд╣рд╛рдБ рд╕рдорд╛рдкреНрдд рд╣реЛрдЧреАред рдФрд░ рдЪрд▓рд┐рдП рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдореБрджреНрджреЗ рдХреА рддрд╛рд░реАрдЦ рд╕реНрдерд┐рдд рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ
рдорд╣реАрдиреЗ M рд╡рд░реНрд╖ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рддрджрдиреБрд╕рд╛рд░, рдЖрдк рдХреЗрд╡рд▓ "M" рдЕрдХреНрд╖рд░ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд╝реАрд▓реНрдб рдХреЛ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдзреНрдпрд╛рди рд╕реЗ рд╕реЛрдЪреЗрдВ, рддреЛ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рд╛рд▓ рдореЗрдВ рдПрдХ рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╛рд╕рдкреЛрд░реНрдЯ рдЬрд╛рд░реА рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрдИ рд╡рд┐рднрд╛рдЧ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рддрджрдиреБрд╕рд╛рд░ рдпрд╣ рд╣рдорд╛рд░реЗ рдореЙрдбрд▓ рдХреЛ рдмрд░реНрдмрд╛рдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЗрд╕реЗ рдЪрдпрди рд╕реЗ рд╣рдЯрд╛ рджреЗрдВ:
train = train.drop(['passport_issue_month/year'], axis=1)
рдЕрдм рд╣рдо рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд░ рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг
рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореЙрдбрд▓ рдмрдирд╛рдиреЗ рдХрд╛ рдбреЗрдЯрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рдЯреЗрдХреНрд╕реНрдЯ рдлреЙрд░реНрдо рдореЗрдВ рд╣реИрдВред рдПрдХ рдореЙрдбрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд░реВрдк рдореЗрдВ рдПрдирдХреЛрдб рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рд╕реНрдХрд┐рдЯрд┐рдЯ-рд▓рд░реНрди рдкреИрдХреЗрдЬ рдХреЗ рд▓реЗрдЦрдХреЛрдВ
рдиреЗ рдзреНрдпрд╛рди рд╕реЗ рд╣рдорд╛рд░реА рджреЗрдЦрднрд╛рд▓ рдХреА рдФрд░ рдкрд╛рда рдбреЗрдЯрд╛ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдФрд░ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП
рдХрдИ рддрд░реАрдХреЗ рдЬреЛрдбрд╝реЗред рдЗрдирдореЗрдВ рд╕реЗ, рдореБрдЭреЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рджреЛ рдкрд╕рдВрдж рд╣реИрдВ:
- FeatureHasher
- CountVectorizer
- HashingVectorizer
рдлрд╝реАрдЪрд░рд╣рд╛рд╢рд░ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди (
рдореБрд░рдореБрд░рд╢ 3 рдХрд╛ 32-рдмрд┐рдЯ рд╕рдВрд╕реНрдХрд░рдг) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджрд┐рдП рдЧрдП рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕рд░рдгреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ
CountVectorizer рдЗрдирдкреБрдЯ рдкрд╛рда рдХреЛ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдорд╛рди рдкрд╛рда рдореЗрдВ рдЗрд╕ рдХреБрдВрдЬреА (рд╢рдмреНрдж) рдХреА рдШрдЯрдирд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред рдлрд╝реАрдЪрд░рд╣рд╛рд╢рд░ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЗрд╕рдореЗрдВ рдЕрдзрд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк
рдЯреЛрдХрди рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ), рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдзрд┐рдХ рдзреАрд░реЗ-рдзреАрд░реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
CountVectorizer рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╕рдордЭ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рджреЗрддреЗ рд╣реИрдВред рдорд╛рди рд▓реЗрдВ рдХрд┐ рдкрд╛рда рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣реИ:
рдореВрд▓реНрдп |
---|
рдПрдХ рджреЛ рддреАрди |
рддреАрди рдЪрд╛рд░ рджреЛ рджреЛ |
рдПрдХ рд╕рдордп рдЪрд╛рд░ рдмрд╛рд░ |
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, CountVectorizer рд╕рднреА рд░рд┐рдХреЙрд░реНрдб рд╕реЗ рдЕрджреНрд╡рд┐рддреАрдп рдХреБрдВрдЬрд┐рдпрд╛рдБ рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдпрд╣ рд╣реЛрдЧрд╛:
[рдПрдХ, рджреЛ, рддреАрди, рдЪрд╛рд░]
рдЕрджреНрд╡рд┐рддреАрдп рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдХреА рд▓рдВрдмрд╛рдИ рд╣рдорд╛рд░реЗ рдПрдиреНрдХреЛрдбреЗрдб рдкрд╛рда рдХреА рд▓рдВрдмрд╛рдИ рд╣реЛрдЧреА (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ 4 рд╣реИ)ред рдФрд░ рдЖрдЗрдЯрдо рдирдВрдмрд░ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдХреБрдВрдЬреА рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдВрдЧреЗ рдЬреЛ рдЗрд╕ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ:
рдПрдХ рджреЛ рддреАрди -> [1,1,1,0]
рддреАрди рдЪрд╛рд░ рджреЛ рджреЛ -> [0,2,1,1]
рддрджрдиреБрд╕рд╛рд░, рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:
рдореВрд▓реНрдп |
---|
1,1,1,0 |
0,2,1,1 |
3,0,0,1 |
HashingVectorizer рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рджреЛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдорд┐рд╢реНрд░рдг рд╣реИред рдЗрд╕рдореЗрдВ, рдЖрдк рдПрдиреНрдХреЛрдбреЗрдб рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреИрд╕рд╛ рдХрд┐
рдлреАрдЪрд░рд╣реИрд╢рд░ рдореЗрдВ ) рдФрд░ рдЯреЛрдХрди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ (рдЬреИрд╕рд╛ рдХрд┐
рдХрд╛рдЙрдВрдЯрд╡реЗрдХреНрдЯрд░ рдореЗрдВ )ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдлреАрдЪрд░рд╣рд╛рд╢рд░ рдХреЗ рдХрд░реАрдм рд╣реИред
рдЗрд╕рд▓рд┐рдП, рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВред рдпрджрд┐ рд╣рдо рдЕрдкрдиреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдорд╛рди рд░реЗрдЦрд╛рдПрдБ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: "
... рд░рд┐рдкрдмреНрд▓рд┐рдХ рдСрдл рдХрд░реЗрд▓рд┐рдпрд╛ ... " рдФрд░ "
... рдХреЗрд░реЛрд▓рд┐рдпрд╛ рдЧрдгрд░рд╛рдЬреНрдп рдХреЗ рд▓рд┐рдП ... "ред
рддрджрдиреБрд╕рд╛рд░, рдпрджрд┐ рд╣рдо рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрдм рд╣рдореЗрдВ рдмрд╣реБрдд рд╕рдорд╛рди рдореВрд▓реНрдп рдорд┐рд▓реЗрдВрдЧреЗред рдЗрд╕ рддрд░рд╣ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рд╣рдо рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рд╕рднреА рд╢рдмреНрджреЛрдВ рдХреЛ
рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рдореЗрдВ рд▓рд╛рддреЗ рд╣реИрдВред
рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП
pymorphy рдпрд╛
nltk рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓ рд╣реИред рдореИрдВ рдкрд╣рд▓реЗ рд╡рд╛рд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рд░реВрд╕реА рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рддреЛ, рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рд▓рд╛рдЗрди рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рдиреЗ рдФрд░ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдЧрд╛, рд╡рд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
def f_tokenizer(s): morph = pymorphy2.MorphAnalyzer() if type(s) == unicode: t = s.split(' ') else: t = s f = [] for j in t: m = morph.parse(j.replace('.','')) if len(m) <> 0: wrd = m[0] if wrd.tag.POS not in ('NUMR','PREP','CONJ','PRCL','INTJ'): f.append(wrd.normal_form) return f
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ:
- рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдПрдХ рд╕реВрдЪреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ
- рддрдм рдпрд╣ рд╕рднреА рд╢рдмреНрджреЛрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИ
- рдпрджрд┐ рд╢рдмреНрдж рдПрдХ рдЕрдВрдХ, рд╡рд┐рдзреЗрдп, рдкреВрд░реНрд╡рд╕рд░реНрдЧ, рд╕рдВрдШ, рдХрдг рдпрд╛ рдЕрдВрддрд░реНрд╡рд┐рд░реЛрдз рд╣реИ, рддреЛ рдЗрд╕реЗ рдЕрдВрддрд┐рдо рд╕реЗрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рди рдХрд░реЗрдВ
- рдпрджрд┐ рд╢рдмреНрдж рдкрд┐рдЫрд▓реА рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛, рддреЛ рдЗрд╕рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд▓реЗрдВ рдФрд░ рдЗрд╕реЗ рдЕрдВрддрд┐рдо рд╕реЗрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
рдЕрдм рдЬрдм рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рддреЛ рдЖрдк
CountVectorizer рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдбрд┐рдВрдЧ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕реЗ рдЗрд╕рд▓рд┐рдП рдЪреБрдирд╛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХ рдЯреЛрдХрди рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдФрд░ рдпрд╣ рд╣рдорд╛рд░реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреНрд░рд╛рдкреНрдд рдорд╛рдиреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдЧрд╛:
coder = HashingVectorizer(tokenizer=f_tokenizer, n_features=256)
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╡рд┐рдзрд┐ рдмрдирд╛рддреЗ рд╕рдордп рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЯреЛрдХрди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдПрдХ рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░
n_features рд╕реЗрдЯ
рдХрд░рддреЗ рд╣реИрдВ ред рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдПрдиреНрдХреЛрдбреЗрдб рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реНрдЯреНрд░рд┐рдВрдЧ 256 рдХреЙрд▓рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдиреНрдХреЛрдбреЗрдб рд╣реИ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛,
рд╣рд╛рд╢рд┐рдВрдЧрд╡реЗрдХреНрдЯрд░ рдХрд╛
рдХрд╛рдЙрдВрдЯрд╡реЗрдХреНрдЯрд░рд╛рдЗрдЬрд╝рд░ рдкрд░ рдПрдХ рдФрд░ рд▓рд╛рдн рд╣реИ, рд▓реЗрдХрд┐рди рдореВрд▓реНрдпреЛрдВ рдХреЛ рддреБрд░рдВрдд рд╕рд╛рдорд╛рдиреНрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдПрд╕рд╡реАрдПрдо рдЬреИрд╕реЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИред
рдЕрдм рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдПрдирдХреЛрдбрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ:
TrainNotDuble = train.drop_duplicates() trn = coder.fit_transform(TrainNotDuble.passport_issuer_name.tolist()).toarray()
рдореЙрдбрд▓ рдмрд┐рд▓реНрдбрд┐рдВрдЧ
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдЙрд╕ рдХреЙрд▓рдо рдХреЗ рд▓рд┐рдП рдорд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрдХреНрд╖рд╛ рд▓реЗрдмрд▓ рд╣реЛрдВрдЧреЗ:
target = TrainNotDuble.passport_div_code.values
рдЖрдЬ рд╣рдо рдЬреЛ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╡рд╣ рдХрдИ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд░реНрдЧреАрдХрд░рдг рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╡рд░реНрдЧ рд╣реИред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
RandomForest рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо
рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдерд╛ред рдмрд╛рдХреА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдиреЗ рдмрд╣реБрдд рдЦрд░рд╛рдм рдкрд░рд┐рдгрд╛рдо (50% рд╕реЗ рдХрдо) рджрд┐рдЦрд╛рдП, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд▓реЗрдЦ рдореЗрдВ рдЬрдЧрд╣ рдирд╣реАрдВ рд▓реЗрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ, рддреЛ рдХреЛрдИ рднреА рд╡реНрдпрдХреНрддрд┐ рдЗрди рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рд╡рд░реНрдЧреАрдХрд░рдг рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╛ рдЖрдХрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрди рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рд╕рд╣реА рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЕрд░реНрдерд╛рддреНред

, рдЬрд╣рд╛рдВ
рдкреА рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░рд┐рдпрд░ рдиреЗ рд╕рд╣реА рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рдФрд░
рдПрди рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдирдореВрдиреЗ рдХрд╛ рдЖрдХрд╛рд░ рд╣реИред
Scikit-learn рдкреИрдХреЗрдЬ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ: рд╕рдЯреАрдХрддрд╛_рд╕реНрдХреЛрд░
рдореЙрдбрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП, тАЬрдкреНрд░рдореБрдЦ рдШрдЯрдХ рд╡рд┐рдзрд┐тАЭ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдпрд╛рдо рдХреЛ рдХрдо рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдХреБрдЫ 256 рдХреЙрд▓рдо рд╣реИрдВ:
pca = PCA(n_components = 15) trn = pca.fit_transform(trn)
рдореЙрдбрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
model = RandomForestClassifier(n_estimators = 100, criterion='entropy') TRNtrain, TRNtest, TARtrain, TARtest = train_test_split(trn, target, test_size=0.4) model.fit(TRNtrain, TARtrain) print 'accuracy_score: ', accuracy_score(TARtest, model.predict(TRNtest))
рд╕рдЯреАрдХрддрд╛_рд╕реНрдХреЛрд░: 0.6523456
рдирд┐рд╖реНрдХрд░реНрд╖
рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ 65% рдХреА рдкреНрд░рд╛рдкреНрдд рд╕рдЯреАрдХрддрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рдХрд░реАрдм рд╣реИред рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рд╡реНрдпрд╛рдХрд░рдг рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рд▓рд┐рдкрд┐рдХреАрдп рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХрд┐рд╕реА рдлрд╝реАрд▓реНрдб рдХреЛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдЗрд╕ рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╢рдмреНрджрдХреЛрд╢ рдкрд░ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝реЗрдЧрд╛, рдЕрд░реНрдерд╛рдд, рдЗрд╕рдХрд╛ рдЖрдХрд╛рд░ рдШрдЯ рдЬрд╛рдПрдЧрд╛ рдФрд░ рддрджрдиреБрд╕рд╛рд░, рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рдмрд╛рдж рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИ рдХрдо рд╣реЛ рдЬрд╛рдПрдЧреАред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд░реАрдХреНрд╖рдг рдирдореВрдиреЗ рдХреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдЪрд░рдг рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдлреЙрд░реНрдо рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рд╡рд┐рд╢реЗрд╖ рдирд╣реАрдВ рд╣реИ (рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдирдореВрдиреЗ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд▓реЗ рдХрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)
рд▓реЗрдЦ рдореЗрдВ, рдореИрдВрдиреЗ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдЦрд┐рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдареНрдп рд╕реВрдЪрдирд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд░рдгреЛрдВ рдХреА рдПрдХ рдиреНрдпреВрдирддрдо рд╕реВрдЪреА рджрд┐рдЦрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рд╢рд╛рдпрдж рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдореЗрдВ рдкрд╣рд▓рд╛ рдХрджрдо рдЙрдард╛рддреЗ рд╣реБрдП, рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреАред
UPD :
IPython рдиреЛрдЯрдмреБрдХ рдХрдВрд╕реЛрд▓ TKCTask2Answer.ipynb