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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习实战-逻辑回归-19

發布時間:2024/9/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习实战-逻辑回归-19 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

機器學習實戰-邏輯回歸-用戶流失預測



import numpy as np train_data = np.genfromtxt('Churn-Modelling.csv',delimiter=',',dtype=np.str) test_data = np.genfromtxt('Churn-Modelling-Test-Data.csv',delimiter=',',dtype=np.str) x_train = train_data[1:,:-1] y_train = train_data[1:,-1].astype(int) x_test = test_data[1:,:-1] y_test = test_data[1:,-1].astype(int) x_train = np.delete(x_train,[0,1,2],axis=1) x_test = np.delete(x_test,[0,1,2],axis=1) x_train[:5]

y_train[:5]

# x_train[x_train=='Female'] = 0 # x_train[x_train=='Male'] = 1 from sklearn.preprocessing import LabelEncoder labelencoder1 = LabelEncoder() x_train[:,1] = labelencoder1.fit_transform(x_train[:,1]) x_test[:,1] = labelencoder1.transform(x_test[:,1]) labelencoder2 = LabelEncoder() x_train[:,2] = labelencoder2.fit_transform(x_train[:,2]) x_test[:,2] = labelencoder2.transform(x_test[:,2])

x_train = x_train.astype(np.float32) x_test = x_test.astype(np.float32) y_train = y_train.astype(np.float32) y_test = y_test.astype(np.float32) from sklearn.preprocessing import StandardScaler sc = StandardScaler() x_train = sc.fit_transform(x_train) x_test = sc.transform(x_test)

from sklearn.linear_model import LinearRegression from sklearn.metrics import classificationLR = LinearRegression() LR.fit(x_train,y_train)predictions = LR.predict(x_test) print(classification_report(y_test, predictions))

機器學習實戰-邏輯回歸-糖尿病預測模型


import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns

# 載入數據 diabetes_data = pd.read_csv('diabetes.csv') diabetes_data.head()

# 數據信息 diabetes_data.info(verbose=True)

# 數據描述 diabetes_data.describe()

# 數據形狀 diabetes_data.shape

# 查看標簽分布 print(diabetes_data.Outcome.value_counts()) # 使用柱狀圖的方式畫出標簽個數統計 p=diabetes_data.Outcome.value_counts().plot(kind="bar") plt.show()

# 可視化數據分布 p=sns.pairplot(diabetes_data, hue = 'Outcome') plt.show()


這里畫的圖主要是兩種類型,直方圖和散點圖。單一特征對比的時候用的是直方圖,不同特征對比的時候用的是散點圖,顯示兩個特征的之間的關系。觀察數據分布我們可以發現一些異常值,比如Glucose葡萄糖,BloodPressure血壓,SkinThickness皮膚厚度,Insulin胰島素,BMI身體質量指數這些特征應該是不可能出現0值的。

# 把葡萄糖,血壓,皮膚厚度,胰島素,身體質量指數中的0替換為nan colume = ['Glucose', 'BloodPressure', 'SkinThickness', 'Insulin', 'BMI'] diabetes_data[colume] = diabetes_data[colume].replace(0,np.nan) # pip install missingno import missingno as msno p=msno.bar(diabetes_data) plt.show()

# 設定閥值 thresh_count = diabetes_data.shape[0]*0.8 # 若某一列數據缺失的數量超過20%就會被刪除 diabetes_data = diabetes_data.dropna(thresh=thresh_count, axis=1) p=msno.bar(diabetes_data) plt.show()

# 導入插補庫 from sklearn.preprocessing import Imputer # 對數值型變量的缺失值,我們采用均值插補的方法來填充缺失值 imr = Imputer(missing_values='NaN', strategy='mean', axis=0) colume = ['Glucose', 'BloodPressure', 'BMI'] # 進行插補 diabetes_data[colume] = imr.fit_transform(diabetes_data[colume]) p=msno.bar(diabetes_data) plt.show()

plt.figure(figsize=(12,10)) # 畫熱力圖,數值為兩個變量之間的相關系數 p=sns.heatmap(diabetes_data.corr(), annot=True) plt.show()

# 把數據切分為特征x和標簽y x = diabetes_data.drop("Outcome",axis = 1) y = diabetes_data.Outcome from sklearn.model_selection import train_test_split # 切分數據集,stratify=y表示切分后訓練集和測試集中的數據類型的比例跟切分前y中的比例一致 # 比如切分前y中0和1的比例為1:2,切分后y_train和y_test中0和1的比例也都是1:2 x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.3, stratify=y) from sklearn.linear_model import LogisticRegression from sklearn.metrics import classification_reportLR = LogisticRegression() LR.fit(x_train,y_train)predictions = LR.predict(x_test) print(classification_report(y_test, predictions))

總結

以上是生活随笔為你收集整理的机器学习实战-逻辑回归-19的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。