日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

01- 机器学习经典流程 (中国人寿保费项目) (项目一)

發(fā)布時間:2024/3/13 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 01- 机器学习经典流程 (中国人寿保费项目) (项目一) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
  • ?刪除特征: data = data.drop(['region', 'sex'], axis=1)
  • 特征數(shù)據(jù)調(diào)整: data.apply( )
# 體重指數(shù),離散化轉(zhuǎn)換,體重兩種情況:標(biāo)準(zhǔn)、肥胖 def convert(df,bmi):df['bmi'] = 'fat' if df['bmi'] >= bmi else 'standard'return df data = data.apply(convert, axis = 1, args=(30,)) # args 是傳參
  • 將非數(shù)字類型特征轉(zhuǎn)換為數(shù)值: data = pd.get_dummies(data)
  • 設(shè)定目標(biāo)值和特征值:
X = data.drop('charges', axis=1) # 訓(xùn)練數(shù)據(jù) y = data['charges'] # 目標(biāo)值


中國人壽保費(fèi)項(xiàng)目

數(shù)據(jù)存儲: https://blog.csdn.net/March_A/article/details/128985290

1. 導(dǎo)入數(shù)據(jù)

import numpy as np import pandas as pd data = pd.read_excel('./中國人壽.xlsx') data.head(10)

2. 查看數(shù)據(jù)特征

import seaborn as sns # 性別對保費(fèi)影響 sns.kdeplot(data['charges'],shade = True,hue = data['sex'])# 地區(qū)對保費(fèi)影響 sns.kdeplot(data['charges'],shade = True,hue = data['region'])# 吸煙對保費(fèi)影響 sns.kdeplot(data['charges'],shade = True,hue = data['smoker'])# 孩子數(shù)量對保費(fèi)影響 sns.kdeplot(data['charges'],shade = True,hue = data['children'],palette='Set1')

  • 不同性別對保費(fèi)影響不大,不同性別的保費(fèi)的概率分布曲線基本重合,因此這個特征無足輕重,可以刪除, 地區(qū)同理

  • 吸煙與否對保費(fèi)的概率分布曲線差別很大,整體來說不吸煙更加健康,那么保費(fèi)就低,這個特征很重要

  • 家庭孩子數(shù)量對保費(fèi)有一定影響

3. 刪除不重要數(shù)據(jù)

data = data.drop(['region', 'sex'], axis=1)

4 特征屬性調(diào)整

# 體重指數(shù),離散化轉(zhuǎn)換,體重兩種情況:標(biāo)準(zhǔn)、肥胖 def convert(df,bmi):df['bmi'] = 'fat' if df['bmi'] >= bmi else 'standard'return df data = data.apply(convert, axis = 1, args=(30,)) # args 是傳參 data.head()

5 非數(shù)值轉(zhuǎn)換為數(shù)據(jù)類型 (去字符串)

# 特征提取,離散型數(shù)據(jù)轉(zhuǎn)換為數(shù)值型數(shù)據(jù) data = pd.get_dummies(data) data.head()

6 設(shè)定目標(biāo)值和特征值

# 特征和目標(biāo)值抽取 X = data.drop('charges', axis=1) # 訓(xùn)練數(shù)據(jù) y = data['charges'] # 目標(biāo)值 X.head()

7 數(shù)據(jù)拆分

# 數(shù)據(jù)拆分 from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

8 數(shù)據(jù)升維

# 特征升維 from sklearn.preprocessing import PolynomialFeatures poly = PolynomialFeatures(degree= 2, include_bias = False) X_train_poly = poly.fit_transform(X_train) X_test_poly = poly.fit_transform(X_test)

9 模型訓(xùn)練

# 模型訓(xùn)練 from sklearn.linear_model import LinearRegression model_1 = LinearRegression() model_1.fit(X_train_poly, y_train)# 使用彈性網(wǎng)絡(luò)訓(xùn)練 from sklearn.linear_model import ElasticNet model_2 = ElasticNet(alpha = 0.3,l1_ratio = 0.5,max_iter = 50000) model_2.fit(X_train_poly,y_train)

10? 模型評估

model_1.score(X_train_poly, y_train) # 0.8624083431844988 model_2.score(X_test_poly, model_2.predict(X_test_poly)) # 1.0 # 模型評估 from sklearn.metrics import mean_squared_error,mean_squared_log_error print('訓(xùn)練數(shù)據(jù)均方誤差:',np.sqrt(mean_squared_error(y_train,model_1.predict(X_train_poly)))) print('測試數(shù)據(jù)均方誤差:',np.sqrt(mean_squared_error(y_test,model_1.predict(X_test_poly))))print('訓(xùn)練數(shù)據(jù)對數(shù)誤差:',np.sqrt(mean_squared_log_error(y_train,model_1.predict(X_train_poly)))) print('測試數(shù)據(jù)對數(shù)誤差:',np.sqrt(mean_squared_log_error(y_test,model_1.predict(X_test_poly))))

結(jié)論:

  • 進(jìn)行EDA數(shù)據(jù)探索,可以查看無關(guān)緊要特征

  • 進(jìn)行特征工程:刪除無用特征、特征離散化、特征提取。這對機(jī)器學(xué)習(xí)都至關(guān)重要

  • 對于簡單的數(shù)據(jù)(特征比較少)進(jìn)行線性回歸,一般需要進(jìn)行特征升維

  • 選擇不同的算法,進(jìn)行訓(xùn)練和評估,從中篩選優(yōu)秀算法

總結(jié)

以上是生活随笔為你收集整理的01- 机器学习经典流程 (中国人寿保费项目) (项目一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。