99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

基于Python進行機器學習的流程:探索性數(shù)據(jù)分析、特征工程、訓練模型、評估結(jié)果

zhKF_jqr_AI ? 來源:未知 ? 作者:李倩 ? 2018-07-26 09:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

編者按:Sapient數(shù)據(jù)科學家Deepak Jhanji通過實例演示了基于Python進行機器學習的流程:探索性數(shù)據(jù)分析、特征工程、訓練模型、評估結(jié)果.

機器學習提供了一個無需明確編程、可以自行學習和提升的系統(tǒng)。它使用特定的處理數(shù)據(jù)的算法自行學習。在這篇教程中,我們將使用Python和XGBoost預測簽證結(jié)果。

這篇教程主要介紹以下內(nèi)容:

探索性數(shù)據(jù)分析

特征工程和特征提取

基于XGBoost算法訓練數(shù)據(jù)集

使用訓練好的模型進行預測

加載庫

Python庫是函數(shù)和方法的匯集,讓你在無需自行實現(xiàn)算法的情況下編寫代碼。相應地,你需要下載、安裝、引入所用的庫。

NumPy,簡稱np,是Python的基礎性的科學計算包。它包括強大的N維數(shù)組對象,精密的函數(shù),集成C/C++的工具,線性代數(shù),隨機數(shù)。緊隨其后的是pandas,簡稱pd,一個開源的BSD許可庫,提供高性能、易于使用的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工具。接著是scikit learn/sklean庫,提供機器學習算法。除了這些基礎性的庫之外,這篇教程還用到了Statistics(提供mode()等統(tǒng)計函數(shù))、re(正則表達式)、XGboost(XGBoost分類器)。

import numpy as np

import pandas as pd

from sklearn.model_selection import train_test_split

from sklearn.linear_model importLogisticRegression

from sklearn.metrics import confusion_matrix, classification_report

from statistics import mode

import re

from xgboost importXGBClassifier

H1B簽證和數(shù)據(jù)集

數(shù)據(jù)集可以通過Kaggle獲?。簄sharan/h-1b-visa

它包括五年的H-1B申請記錄,共計近三百萬條記錄。數(shù)據(jù)集的列包括狀態(tài)、雇主名稱、工作地點、職位、現(xiàn)行工資、職業(yè)代碼、年份。

數(shù)據(jù)來自外國勞工認證辦公室(OFLC),每年都把可公開披露的數(shù)據(jù)上傳至網(wǎng)絡。H1B簽證是一種需求強烈的非移民簽證,允許專門職業(yè)的外國勞工進入國境。H-1B簽證是一種基于雇傭關系的非移民簽證,對美國的臨時外國勞工發(fā)放。外國人想要申請H1-B簽證,必須有美國雇主為其提供工作,并向美國移民局提交H-1B申請。這也是國際留學生完成學業(yè)開始全職工作后最常見的簽證申請類別。

H1B申請流程的第一步是美國雇主為外國勞工提交H1B申請。第二步是由州就業(yè)保障機構(gòu)確認現(xiàn)行工資和實際工資。如果現(xiàn)行工資高于潛在雇主提供的工資,那么需要進行工資標準審批。H1B申請流程的第三步是提交勞工條件申請。接下來的步驟是提交H1B申請至USCIS(美國公民及移民服務局)的相應辦公室。各地的H1B申請?zhí)幚頃r間不同。如果你希望加快申請,可以選擇加急處理。H1B申請流程的最后一步是通過輸入收據(jù)號查詢H1B簽證狀態(tài)。一旦USCIS記錄了你的申請,就會在他們的系統(tǒng)中更新你的簽證狀態(tài)。

數(shù)據(jù)集中,每個樣本應該包含以下信息:

CASE_ID每個申請唯一的編號

CASE_STATUS申請狀態(tài),這是目標變量。

EMPLOYER_NAME提交申請的雇主名稱。

SOC_NAME職業(yè)名稱。

JOB_Title頭銜。

FULL_TIME_POSITION是否是全職職位。

PREVAILING_WAGE職位的現(xiàn)行工資為支付給類似勞工的平均工資。

YEAR提交h1b申請的年份。

WORKSITE工作地點所在州、城市。

Lon工作地點經(jīng)度。

Lat工作地點緯度。

加載數(shù)據(jù)集

首先要做的是將數(shù)據(jù)集加載為對象。pandas的.read_csv()方法可以加載csv文件:

df = pd.read_csv('C:/Users/djhanj/Downloads/h1b_TRAIN.csv')

理解數(shù)據(jù)

加載數(shù)據(jù)后,總是建議探索數(shù)據(jù)集,以確保加載的數(shù)據(jù)結(jié)構(gòu)、格式正確,所有變量或特征正確加載。

.info()方法可以用來檢查數(shù)據(jù)信息。在我們的例子上,這個方法顯示數(shù)據(jù)以DataFrame的格式存儲,其中1個變量為整數(shù)格式,4個變量為浮點數(shù)格式,6個變量為對象格式。

.head()方法返回首5行數(shù)據(jù)。這能讓你大概了解數(shù)據(jù)集。

.describe()方法將顯示最小值、最大值、均值、中位數(shù)、標準差,以及所有整數(shù)和浮點數(shù)變量的數(shù)目。

df.info()

df.head()

df.describe()

RangeIndex: 2251844 entries, 0 to 2251843

Data columns (total 11 columns):

CASE_ID int64

CASE_STATUS object

EMPLOYER_NAME object

SOC_NAME object

JOB_TITLE object

FULL_TIME_POSITION object

PREVAILING_WAGE float64

YEAR float64

WORKSITE object

lon float64

lat float64

dtypes: float64(4), int64(1), object(6)

memory usage: 189.0+ MB

數(shù)據(jù)集共有11列,其中1列是目標變量(case_status)。也就是說,數(shù)據(jù)有1個目標變量和10個獨立變量。你當然應該檢查下目標變量的分類。你可以在df的case_status特征上使用.unique()方法。

這是一個分類問題。你需要預測case_status的所屬分類。

df['CASE_STATUS'].unique()

df.head(10)

特征工程和數(shù)據(jù)預處理

注意,目標變量包含6個不同的分類:

Certified

Certified Withdrawn

Rejected

Invalidatd

Pending Quality and compliance review

Denied

取決于具體的業(yè)務問題,你需要決定這是一個多元分類問題,還是一個二元分類問題。如果是二元分類問題,那么只有Certified(批準)和Denied(拒簽)兩個分類。所以你要做的第一件事是將剩余的分類轉(zhuǎn)換為Certified或Denied。其中,Rejected和Invalidated都是拒簽的情形,所以應該將這兩種狀態(tài)轉(zhuǎn)換為Denied。在美簽中,Pending Quality and compliance的最終結(jié)果最可能是拒簽,所以也應該轉(zhuǎn)換為Denied。Certified withdrawn(批準后撤回)則是批準的情形,因為簽證已經(jīng)批準了,只不過雇主因為種種原因(比如勞工更換工作單位)而決定撤回申請。

df.CASE_STATUS[df['CASE_STATUS']=='REJECTED'] = 'DENIED'

df.CASE_STATUS[df['CASE_STATUS']=='INVALIDATED'] = 'DENIED'

df.CASE_STATUS[df['CASE_STATUS']=='PENDING QUALITY AND COMPLIANCE REVIEW - UNASSIGNED'] = 'DENIED'

df.CASE_STATUS[df['CASE_STATUS']=='CERTIFIED-WITHDRAWN'] = 'CERTIFIED'

至于Withdrawn(撤回)分類,由于很難預測數(shù)據(jù)集中的Withdrawn案例最終結(jié)果如何,我們可以直接移除這一分類。另一個移除Withdrawn分類的原因是它在整個數(shù)據(jù)集中所占的比例小于1%,這意味著模型很可能無法精確分類Withdrawn分類。

df = df.drop(df[df.CASE_STATUS == 'WITHDRAWN'].index)

查看下數(shù)據(jù)集中批準和拒簽的比例各是多少?

df = df[df['CASE_STATUS'].notnull()]

print(df['CASE_STATUS'].value_counts())

結(jié)果:

CERTIFIED 2114025

DENIED 70606

Name: CASE_STATUS, dtype: int64

整個數(shù)據(jù)集中,只有大約3.2%的申請被拒,這意味著,數(shù)據(jù)集中大約96.8%的申請被批準了。這表明數(shù)據(jù)集是高度失衡的。失衡數(shù)據(jù)集的一大問題是模型將更偏向頻繁出現(xiàn)的分類;在這個例子中,模型將偏向批準。有一些解決失衡問題的技術,不過本教程沒有使用它們。

處理缺失值

這個數(shù)據(jù)集并不整潔,其中包含很多缺失值。你必須處理缺失值。最簡單的方法是移除它們,不過這會損失信息。讓我們逐步看看如何處理缺失值:

CASE_ID 0

CASE_STATUS 0

EMPLOYER_NAME 11

SOC_NAME 12725

JOB_TITLE 6

FULL_TIME_POSITION 1

PREVAILING_WAGE 41

YEAR 0

WORKSITE 0

lon 77164

lat 77164

dtype: int64

就EMPLOYER_NAME(雇主名稱)而言,我們可以用眾數(shù)(最常出現(xiàn)的值)填充11項缺失值:

df['EMPLOYER_NAME'] = df['EMPLOYER_NAME'].fillna(df['EMPLOYER_NAME'].mode()[0])

如果不放心,我們可以用assert語句確保不存在空值。如有空值,Python會拋出AssertionError。

assert pd.notnull(df['EMPLOYER_NAME']).all().all()

下面我們將查看prevailing_wage(現(xiàn)行工資)。大部分申請的工資都在4萬到8萬美元之間。某些申請的工資超過50萬美元,有些則為0美元——由于這些情形很罕見,它們應該作為離散值移除(在2%分位和98%分位處截斷)。

df.loc[df.PREVAILING_WAGE < 34029, 'PREVAILING_WAGE']= 34029

df.loc[df['PREVAILING_WAGE'] > 138703, 'PREVAILING_WAGE']= 138703

截斷之后,現(xiàn)行工資的均值和中位數(shù)非常接近。中位數(shù)為6萬5千美金,而均值為6萬8千美金。我們最終將用均值替換缺失值。不過由于這兩個值非常接近,你也可以用中位數(shù)替換。

df.PREVAILING_WAGE.fillna(df.PREVAILING_WAGE.mean(), inplace = True)

JOB_TITLE、FULL_TIME_POSITION、SOC_NAME列也可以使用眾數(shù)填充缺失值。

df['JOB_TITLE'] = df['JOB_TITLE'].fillna(df['JOB_TITLE'].mode()[0])

df['FULL_TIME_POSITION'] = df['FULL_TIME_POSITION'].fillna(df['FULL_TIME_POSITION'].mode()[0])

df['SOC_NAME'] = df['SOC_NAME'].fillna(df['SOC_NAME'].mode()[0])

移除lat和lon列

我們將移除lat(緯度)和lon(經(jīng)度)列,因為它們和工作地點列重復了。在DataFrame上使用drop方法可以移除列,只需指定列名和軸(0表示行、1表示列)。

df = df.drop('lat', axis = 1)

df = df.drop('lon', axis = 1)

特征創(chuàng)建

基于現(xiàn)有的數(shù)據(jù)有可能制作一個模型,不過,某些列包含尚待提取的信息。

EMPLOYER_NAME包含雇主的名稱,其中包含大量不同的雇主(為雇員提交申請的公司)。我們無法直接在模型中使用EMPLOYER_NAME,因為類別太多了;超過500個不同雇主。

提交申請最多的5家公司是Infosys、TCS、Wipro、Deloitte、IBM。不過,根據(jù)經(jīng)驗,由大學提交的申請更容易通過。

所以,問題是,我們?nèi)绾螐脑撎卣髦刑崛〕鲆恍┬畔ⅲ?/p>

好吧,我們大概可以創(chuàng)建一個名為NEW_EMPLOYER的新特征:雇主名稱是否包含University(大學)字符串。

創(chuàng)建一個空列相當簡單:

df['NEW_EMPLOYER'] = np.nan

在檢查是否包含字符串時,為了避免大小寫問題,我們將雇主名稱統(tǒng)一轉(zhuǎn)換為小寫:

df['EMPLOYER_NAME'] = df['EMPLOYER_NAME'].str.lower()

df.NEW_EMPLOYER[df['EMPLOYER_NAME'].str.contains('university')] = 'university'

df['NEW_EMPLOYER']= df.NEW_EMPLOYER.replace(np.nan, 'non university', regex=True)

變量SOC_NAME也存在這個問題。它包括職業(yè)名稱。我們將創(chuàng)建一個名為OCCUPATION的新變量:

df['OCCUPATION'] = np.nan

df['SOC_NAME'] = df['SOC_NAME'].str.lower()

df.OCCUPATION[df['SOC_NAME'].str.contains('computer','programmer')] = 'computer occupations'

df.OCCUPATION[df['SOC_NAME'].str.contains('software','web developer')] = 'computer occupations'

df.OCCUPATION[df['SOC_NAME'].str.contains('database')] = 'computer occupations'

df.OCCUPATION[df['SOC_NAME'].str.contains('math','statistic')] = 'Mathematical Occupations'

df.OCCUPATION[df['SOC_NAME'].str.contains('predictive model','stats')] = 'Mathematical Occupations'

df.OCCUPATION[df['SOC_NAME'].str.contains('teacher','linguist')] = 'Education Occupations'

df.OCCUPATION[df['SOC_NAME'].str.contains('professor','Teach')] = 'Education Occupations'

df.OCCUPATION[df['SOC_NAME'].str.contains('school principal')] = 'Education Occupations'

df.OCCUPATION[df['SOC_NAME'].str.contains('medical','doctor')] = 'Medical Occupations'

df.OCCUPATION[df['SOC_NAME'].str.contains('physician','dentist')] = 'Medical Occupations'

df.OCCUPATION[df['SOC_NAME'].str.contains('Health','Physical Therapists')] = 'Medical Occupations'

df.OCCUPATION[df['SOC_NAME'].str.contains('surgeon','nurse')] = 'Medical Occupations'

df.OCCUPATION[df['SOC_NAME'].str.contains('psychiatr')] = 'Medical Occupations'

df.OCCUPATION[df['SOC_NAME'].str.contains('chemist','physicist')] = 'Advance Sciences'

df.OCCUPATION[df['SOC_NAME'].str.contains('biology','scientist')] = 'Advance Sciences'

df.OCCUPATION[df['SOC_NAME'].str.contains('biologi','clinical research')] = 'Advance Sciences'

df.OCCUPATION[df['SOC_NAME'].str.contains('public relation','manage')] = 'Management Occupation'

df.OCCUPATION[df['SOC_NAME'].str.contains('management','operation')] = 'Management Occupation'

df.OCCUPATION[df['SOC_NAME'].str.contains('chief','plan')] = 'Management Occupation'

df.OCCUPATION[df['SOC_NAME'].str.contains('executive')] = 'Management Occupation'

df.OCCUPATION[df['SOC_NAME'].str.contains('advertis','marketing')] = 'Marketing Occupation'

df.OCCUPATION[df['SOC_NAME'].str.contains('promotion','market research')] = 'Marketing Occupation'

df.OCCUPATION[df['SOC_NAME'].str.contains('business','business analyst')] = 'Business Occupation'

df.OCCUPATION[df['SOC_NAME'].str.contains('business systems analyst')] = 'Business Occupation'

df.OCCUPATION[df['SOC_NAME'].str.contains('accountant','finance')] = 'Financial Occupation'

df.OCCUPATION[df['SOC_NAME'].str.contains('financial')] = 'Financial Occupation'

df.OCCUPATION[df['SOC_NAME'].str.contains('engineer','architect')] = 'Architecture & Engineering'

df.OCCUPATION[df['SOC_NAME'].str.contains('surveyor','carto')] = 'Architecture & Engineering'

df.OCCUPATION[df['SOC_NAME'].str.contains('technician','drafter')] = 'Architecture & Engineering'

df.OCCUPATION[df['SOC_NAME'].str.contains('information security','information tech')] = 'Architecture & Engineering'

df['OCCUPATION']= df.OCCUPATION.replace(np.nan, 'Others', regex=True)

由于所在州對簽證申請影響重大,我們將從WORKSITE中分割出州信息:

df['state'] = df.WORKSITE.str.split('\s+').str[-1]

為了計算概率,我們需要將目標分類轉(zhuǎn)換為二值,即0和1.

from sklearn import preprocessing

class_mapping = {'CERTIFIED':0, 'DENIED':1}

df["CASE_STATUS"] = df["CASE_STATUS"].map(class_mapping)

移除用不到的變量:

df = df.drop('EMPLOYER_NAME', axis = 1)

df = df.drop('SOC_NAME', axis = 1)

df = df.drop('JOB_TITLE', axis = 1)

df = df.drop('WORKSITE', axis = 1)

df = df.drop('CASE_ID', axis = 1)

在閱讀建模部分之前,別忘了檢查變量的數(shù)據(jù)類型。例如,有些變量應該被用作類別或因子,但是它們的格式卻是對象字符串。

所以,我們需要將這些變量的類型從對象轉(zhuǎn)為類別,因為它們屬于類別特征。

df1[['CASE_STATUS', 'FULL_TIME_POSITION', 'YEAR','NEW_EMPLOYER','OCCUPATION','state']] = df1[['CASE_STATUS', 'FULL_TIME_POSITION', 'YEAR','NEW_EMPLOYER','OCCUPATION','state']].apply(lambda x: x.astype('category'))

切分數(shù)據(jù)為訓練集和測試集

將數(shù)據(jù)集一分為二,60%為訓練集,40%為測試集。

X = df.drop('CASE_STATUS', axis=1)

y = df.CASE_STATUS

seed = 7

test_size = 0.40

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=test_size, random_state=seed)

檢查一下訓練集中是否有null值:

print(X_train.isnull().sum())

應該沒有:

FULL_TIME_POSITION 0

PREVAILING_WAGE 0

YEAR 0

NEW_EMPLOYER 0

OCCUPATION 0

state 0

dtype: int64

由于XGBoost只能處理數(shù)值數(shù)據(jù)。因此我們需要使用pd.get_dummies()對類別值進行獨熱編碼。

X_train_encode = pd.get_dummies(X_train)

X_test_encode = pd.get_dummies(X_test)

XGBoost

XGBoost是“Extreme Gradient Boosting”(極端梯度提升)的簡稱,這是一種監(jiān)督學習方法。具體而言,是梯度提升決策樹的一種注重速度和性能的實現(xiàn)。

提升是一種集成方法,集成方法尋求基于“弱”分類器創(chuàng)建強分類器(模型)。在這一上下文中,弱和強指預測目標變量實際值的準確程度。通過在其他模型基礎上迭代地添加模型,前一個模型的誤差將由下一個預測模型糾正,直到達到滿意的表現(xiàn)。

梯度提升同樣包含逐漸增加模型,糾正之前模型誤差地集成方法。不過,并不在每次迭代中給分類器分配不同的權(quán)重,而是用新模型去擬合之前預測的新殘差,并最小化加上最新預測后的損失。

所以,最終將使用梯度下降技術更新模型,梯度提升由此得名。

關于XGBoost更多的信息,可以參考我們的XGBoost課程。

XGBoost可以直接通過pip安裝:

pip install xgboost

用于分類的XGBoost模型為XGBClassifier()。創(chuàng)建XGBClassifier()時,max_features可以設為sqrt,即特征數(shù)的平方根。max_features是尋找最佳分割時需要考慮的特征數(shù)。所以,假設n_features為100,那么max_features取值為10.

import xgboost

gbm=xgboost.XGBClassifier(max_features='sqrt', subsample=0.8, random_state=10)

我們使用GridSearchCV()調(diào)整超參數(shù):

GridSearchCV()實現(xiàn)了fit和score方法。它也同樣實現(xiàn)了predict、predict_probad、decision_function、transform、inverse_transform方法(如果底層使用的估計器實現(xiàn)了這些方法。)

應用這些方法的估計器的參數(shù)是通過在參數(shù)網(wǎng)格上交叉驗證、網(wǎng)格搜索得到的。

n_estimators的取值,推薦1、10、100,learning_rate的取值,推薦0.1、0.01、0.5。

n_estimators是提升階段數(shù)。梯度提升對過擬合的魯棒性相當不錯,因此較大的取值通常意味著更好地表現(xiàn)。

學習率。學習率可以減慢模型的訓練速度,避免過快學習導致過擬合。通常將學習率設為0.1到0.3之間的數(shù)字。

通過三折交叉驗證,選出最佳learning_rate和n_estimators值。

from sklearn.model_selection importGridSearchCV

parameters = [{'n_estimators': [10, 100]},

{'learning_rate': [0.1, 0.01, 0.5]}]

grid_search = GridSearchCV(estimator = gbm, param_grid = parameters, scoring='accuracy', cv = 3, n_jobs=-1)

grid_search = grid_search.fit(train_X, train_y)

擬合訓練集得到了97%的精確度(學習率0.5):

grid_search.grid_scores_, grid_search.best_params_, grid_search.best_score_

grid_search.best_estimator_將返回網(wǎng)格搜索得到的最佳模型:

XGBClassifier(base_score=0.5, booster='gbtree', colsample_bylevel=1,

colsample_bytree=1, gamma=0, learning_rate=0.5, max_delta_step=0,

max_depth=3, max_features='sqrt', min_child_weight=1, missing=None,

n_estimators=100, n_jobs=1, nthread=None,

objective='binary:logistic', random_state=10, reg_alpha=0,

reg_lambda=1, scale_pos_weight=1, seed=None, silent=True,

subsample=0.8)

使用這一最佳的超參數(shù)組合在訓練集上進行訓練,并在測試集上進行預測。最終得到了96.56%的精確度。

從精確度上來看,我們的模型表現(xiàn)得相當不錯。然而,果真如此嗎?別忘了,我們的數(shù)據(jù)集是一個失衡的數(shù)據(jù)集。模型表現(xiàn)到底如何?不能只看精確度。

我們繪制AUROC曲線看看。

from sklearn import metrics

import matplotlib.pyplot as plt

fpr_xg, tpr_xg, thresholds = metrics.roc_curve(y_test, y_pred)

auc_xgb = np.trapz(tpr_xg,fpr_xg)

plt.plot(fpr_xg,tpr_xg,label=" auc="+str(auc_xgb))

plt.legend(loc=4)

plt.show()

果然,在AUROC曲線下,模型原形畢露了。AUC值0.5左右,ROC曲線基本上是對角線,這是隨機猜測的水平!

看來,我們真應該用些應對失衡分類的技術,例如欠采樣和過采樣,或者SMOTE方法。

由于這篇文章已經(jīng)夠長了,這里就不深入討論如何克服失衡問題了。雖然結(jié)果不如人意,但是我們?nèi)匀煌ㄟ^這個例子熟悉了機器學習的基本流程。

最后,我們將介紹如何儲存模型,這樣下次預測就可以直接使用了,不用再費時費力地從頭開始訓練模型。最簡單直接的方法,就是使用Python的Pickle模塊。

import pickle

XGB_Model_h1b = 'XGB_Model_h1b.sav'

pickle.dump(gbm, open(XGB_Model_h1b, 'wb'))

結(jié)語

創(chuàng)建模型最重要的部分是特征工程和特征選取過程。我們應該從特征中提取最多的信息,讓我們的模型更堅韌、更精確。特征選取和提取需要時間和經(jīng)驗。可能有多種處理數(shù)據(jù)集中的信息的方法。

有許多機器學習算法,你應該選擇能夠給出最佳結(jié)果的算法。你也可以使用不同的算法然后將它們集成起來。在生產(chǎn)環(huán)境中也可以進行A/B測試,以知曉哪個模型表現(xiàn)更優(yōu)。勇往直前,動手編程,嘗試不同的方法??鞓肪幊?!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 機器學習
    +關注

    關注

    66

    文章

    8501

    瀏覽量

    134583
  • 數(shù)據(jù)分析

    關注

    2

    文章

    1472

    瀏覽量

    35028
  • python
    +關注

    關注

    56

    文章

    4827

    瀏覽量

    86701

原文標題:Python | 如何使用機器學習預測H1B簽證狀態(tài)

文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    【大語言模型:原理與工程實踐】大語言模型的預訓練

    數(shù)據(jù)格式的轉(zhuǎn)換、數(shù)據(jù)字段的匹配和整合等。通過數(shù)據(jù)級凈化,可以進一步提高數(shù)據(jù)的質(zhì)量和可用性,為后續(xù)的數(shù)據(jù)分析和建模提供更有價值的
    發(fā)表于 05-07 17:10

    Python機器學習常用庫

    、Scikit-Learn在機器學習數(shù)據(jù)挖掘的應用中,Scikit-Learn是一個功能強大的Python包,我們可以用它進行分類、
    發(fā)表于 03-26 16:29

    常用python機器學習庫盤點

    現(xiàn)在人工智能非?;鸨?,機器學習應該算是人工智能里面的一個子領域,而其中有一塊是對文本進行分析,對數(shù)據(jù)進行
    發(fā)表于 05-10 15:20

    怎么有效學習Python數(shù)據(jù)分析?

    Python在人工智能、機器學習領域受到火熱追捧,很大程度上在于它擁有非常龐大的第三方庫,以及強大的通用編程性能。因此,快速掌握Python進行數(shù)據(jù)
    發(fā)表于 06-28 15:18

    什么是探索性測試ET

    探索性測試ET(exploratory)是和ST(script based test)相比較而言的.籠統(tǒng)地說,ST就是有確定的步驟和預期目標的測試.探索性測試可以說是一種測試思維。它沒有很多實際
    發(fā)表于 07-05 06:38

    數(shù)據(jù)探索數(shù)據(jù)預處理

    目錄1數(shù)據(jù)探索數(shù)據(jù)預處理21.1 賽題回顧21.2 數(shù)據(jù)探索性分析與異常值處理21.3 相關性
    發(fā)表于 07-12 08:37

    探索性數(shù)據(jù)分析(EDA)及其應用

    所謂探索性數(shù)據(jù)分析(EDA),是指對已有的數(shù)據(jù)(特別是調(diào)查或觀察得來的原始數(shù)據(jù))在盡量少的先驗假定下進行
    發(fā)表于 01-24 10:02 ?1680次閱讀
    <b class='flag-5'>探索性</b><b class='flag-5'>數(shù)據(jù)分析</b>(EDA)及其應用

    設計多網(wǎng)絡協(xié)議的Python網(wǎng)絡編程的探索性指南

    很高興看到本書出版了,我要感謝所有為本書的出版做出貢獻的人。本書是Python網(wǎng)絡編程方面的探索性指南,涉及了很多網(wǎng)絡協(xié)議
    發(fā)表于 09-14 10:47 ?5次下載

    如何構(gòu)建檢測信用卡詐騙的機器學習模型?

    對信用卡交易數(shù)據(jù)建立檢測模型,使用Python進行預處理與機器學習建模工作,代碼通俗易懂。包括
    的頭像 發(fā)表于 10-04 09:44 ?3317次閱讀

    細分模型探索性數(shù)據(jù)分析和預處理

    交流學習!文章較長,建議收藏~ 客戶細分模型是將整體會員劃分為不同的細分群體或類別,然后基于細分群體做管理、營銷和關懷??蛻艏毞?b class='flag-5'>模型常用于整體會員的宏觀性分析以及
    的頭像 發(fā)表于 11-08 16:05 ?1920次閱讀
    細分<b class='flag-5'>模型</b><b class='flag-5'>探索性</b><b class='flag-5'>數(shù)據(jù)分析</b>和預處理

    Sweetviz讓你三行代碼實現(xiàn)探索性數(shù)據(jù)分析

    ,還能對每個欄目做眾數(shù)、最大值、最小值等橫向?qū)Ρ取?所有輸入的數(shù)值、文本信息都會被自動檢測,并進行數(shù)據(jù)分析、可視化和對比,最后自動幫你進行總結(jié),是一個探索性數(shù)據(jù)分析的好幫手。 1.準備
    的頭像 發(fā)表于 10-17 10:59 ?649次閱讀
    Sweetviz讓你三行代碼實現(xiàn)<b class='flag-5'>探索性</b><b class='flag-5'>數(shù)據(jù)分析</b>

    Sweetviz: 讓你三行代碼實現(xiàn)探索性數(shù)據(jù)分析

    欄目做眾數(shù)、最大值、最小值等橫向?qū)Ρ取?所有輸入的數(shù)值、文本信息都會被自動檢測,并進行數(shù)據(jù)分析、可視化和對比,最后自動幫你進行總結(jié),是一個探索性數(shù)據(jù)分析的好幫手。 1.準備 開始之前,
    的頭像 發(fā)表于 10-31 10:28 ?1199次閱讀
    Sweetviz: 讓你三行代碼實現(xiàn)<b class='flag-5'>探索性</b><b class='flag-5'>數(shù)據(jù)分析</b>

    機器學習數(shù)據(jù)分析中的應用

    隨著大數(shù)據(jù)時代的到來,數(shù)據(jù)量的爆炸性增長對數(shù)據(jù)分析提出了更高的要求。機器學習作為一種強大的工具,通過訓練
    的頭像 發(fā)表于 07-02 11:22 ?1416次閱讀

    機器學習中的數(shù)據(jù)預處理與特征工程

    機器學習的整個流程中,數(shù)據(jù)預處理與特征工程是兩個至關重要的步驟。它們直接決定了
    的頭像 發(fā)表于 07-09 15:57 ?1450次閱讀

    eda與傳統(tǒng)數(shù)據(jù)分析的區(qū)別

    進行初步的探索和理解,發(fā)現(xiàn)數(shù)據(jù)中潛在的模式、關系、異常值等,為后續(xù)的分析和建模提供線索和基礎。 方法論 :EDA強調(diào)數(shù)據(jù)的真實分布和可視化,
    的頭像 發(fā)表于 11-13 10:52 ?882次閱讀