機器學習 挖掘幸福感(task04 1)

2021-10-12 19:57:30 字數 2618 閱讀 5125

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

from sklearn.model_selection import train_test_split

from sklearn.tree import decisiontreeclassifier as dtc

from sklearn.ensemble import randomforestclassifier as rfc

pd.set_option(

'expand_frame_repr'

,false

)# 當列太多時不換行

deffilter_extreme_3sigma

(series, n=3)

:# 3 sigma 去極值

mean = series.mean(

) std = series.std(

) max_range = mean + n * std

min_range = mean - n * std

return np.clip(series, min_range, max_range)

defstandardize_series

(series)

:# 標準化

std = series.std(

) mean = series.mean(

)return

(series - mean)

/ std

# 讀取資料

, encoding=

"gbk"

)# 檢視資料的資訊

# print(data.info())

# 刪除除調查日期,刪除缺失值很多的列

dele_list =

['work_status'

,'work_yr'

,'work_type'

,'work_manage'

,'survey_time'

]data.drop(dele_list, axis=

1, inplace=

true

)# 刪除自認為無關的特徵

dro_list =

['birth'

,'province'

,'city'

,'county'

]data.drop(dro_list, axis=

1, inplace=

true

)# 刪除所有為空值的行

data = data.dropna(

)# print(data.info())

# print(data.describe())

# 獲取可以給出明確回答幸福感指數的樣本,最後還有7987個樣本

data = data[data[

]>0]

# 對不確定的資料全部都用中位數進行處理

for column in data.columns:

data[column]

[data[column]

<0]

= data[column]

.median(

)# 刪除id列,重新建立索引

data.set_index(

'id'

, inplace=

true

)# 對以下特徵進行標準化

stand_list =

['income'

,'floor_area'

,'family_income'

]for stand in stand_list:

data[stand]

= standardize_series(data[stand]

)# print(data.describe())

# 劃分標籤與特徵

y = data[

]x = data.drop(

, axis=1)

# print(x.head())

# 劃分訓練集與測試集

xtrain, xtest, ytrain, ytest = train_test_split(x, y, test_size=

0.3, random_state=

200)

clf = dtc(random_state=0)

rfc = rfc(random_state=0)

clf = clf.fit(xtrain, ytrain)

rfc = rfc.fit(xtrain, ytrain)

score_c = clf.score(xtest, ytest)

score_r = rfc.score(xtest, ytest)

print

("single tree:{}\n"

.format

(score_c)

,"random forest:{}"

.format

(score_r)

)

最好輸出結果:

single tree:0.47768043387567793

random forest:0.6166040884438881

資料探勘 Task04筆記彙總

1.以下是常用的模型介紹 線性回歸模型 決策樹模型 gbdt模型 xgboost模型 lightgbm模型 機器學習 統計學習方法 python大戰機器學習 面向機器學習的特徵工程 資料科學家訪談錄 3.調整資料型別,可以減少資料在記憶體中占用的空間 4.沒看懂 intercept str mode...

機器學習演算法 Task04條件隨機場(CRF)

最近看了一些有關於crf的 基本概念懂,但是到求解的部分有些疑惑。crf問題容易構成np hard問題,求解過程還需要再學習。下面稍微介紹一些crf的學習吧,這裡前面crf內容主要參考了下面博文,講的非常好 條件隨機場 conditional random fields 是一種判別式圖模型,因為其強...

Python學習Task04 列表 元組和字串

列表 答 1.lst 2 5,6 7,8 9,2 9,9 15 lst.insert 4,20 lst.extend 2 5,6 lst.pop 3 lst.reverse lst.sort lst.sort reverse true lst 1 4,6 true lst 0 lst 0 2lst ...