post Image
マイナビの求人から求人テキストを取得し給与に対する予測を行う

テキストデータはtf-idfによってスケール化すると、容易にモデル作成ができます。ここでは、Webスクレイピングによってマイナビ求人を取得した後、「給与が500万以上かどうか」をラベルとし、スキル要件のテキストデータを特徴量としてモデルを作成し、どのようなワードが重要なのかを見てみます。

コード

In[1]:


import urllib.request
from bs4 import BeautifulSoup

url = "https://mynavi.agentsearch.jp/jobList/category/ol16/?page="

soups = []

for i in range(196):
    page = i+1
    html = urllib.request.urlopen(url+str(page))
    soups.append(BeautifulSoup(html, "html5lib"))

In[2]:

import re
import tinysegmenter

segmenter = tinysegmenter.TinySegmenter()

salaries = []
texts = []

for i in range(196):
    details = soups[i].find_all("div", class_="detail")
    for detail in details:
        salary = re.sub("\n", "", detail.find(class_="last").dd.text)
        salary = re.sub(r"[^0-9]*([0-9]+).*", r"\1", salary)
        salaries.append(salary)
        texts.append(' '.join(segmenter.tokenize(detail.find(class_="right").dd.text)))

In[3]:

from sklearn.model_selection import cross_val_score, train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import GridSearchCV
from sklearn.pipeline import make_pipeline
from sklearn.feature_extraction.text import TfidfVectorizer
import numpy as np

salaries_binary = np.greater(np.array(salaries, dtype="float"), 500)
X_train, X_test, y_train, y_test = train_test_split(texts, salaries_binary, random_state=0)

pipe = make_pipeline(TfidfVectorizer(min_df=4, norm=None), LogisticRegression())
grid = GridSearchCV(pipe, {'logisticregression__C':[0.001, 0.01, 0.1, 1]}, cv=5)
grid.fit(X_train, y_train)
print(grid.score(X_test, y_test))
1.0

In[4]:

import matplotlib.pyplot as plt
import pandas as pd

coefs = grid.best_estimator_.named_steps["logisticregression"].coef_
coef_pd = pd.DataFrame()
coef_pd["coef"] = coefs.tolist()[0]
coef_pd["feature_name"] = feature_names
display(coef_pd.sort_values("coef"))

Screenshot from 2017-09-19 18-33-29.png

In[5]:

display(coef_pd.sort_values("coef",ascending=False))

Screenshot from 2017-09-19 18-33-48.png

説明

ロジスティック回帰によってモデルを作成しています。係数の出力が2種類ありますが、1つめが「マイナスに働く要因」で、2つめが「プラスに働く要因」です。戦略・監査・セキュリティが含まれる求人は500万円以上になりやすく、スキル・以上・システムが含まれる求人は500万以下になりやすいものになります。


『 機械学習 』Article List
Category List

Eye Catch Image
Read More

Androidに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

AWSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Bitcoinに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

CentOSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

dockerに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

GitHubに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Goに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Javaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

JavaScriptに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Laravelに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Pythonに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Rubyに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Scalaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Swiftに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Unityに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Vue.jsに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Wordpressに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

機械学習に関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。