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 ...