自行車共享系統是新一代的傳統自行車租賃,其中會員,租賃和退貨的整個過程已經自動化。通過這些系統,使用者能夠從特定位置輕鬆地租用自行車並在另乙個位置返回。目前,全世界約有500多個自行車共享計畫,其中包括超過50萬輛自行車。今天,由於它們在交通,環境和健康問題中的重要作用,因此對這些系統存在很大興趣。
除了有趣的自行車共享系統的現實應用之外,這些系統產生的資料特徵使它們對研究具有吸引力。與公共汽車或地鐵等其他交通服務相反,旅行,出發和到達位置的持續時間明確記錄在這些系統中。此功能將自行車共享系統轉變為虛擬感測器網路,可用於感知城市的移動性。因此,預計通過監測這些資料可以檢測到城市中的大多數重要事件。
屬性資訊:
hour.csv和day.csv都有以下字段,除了在day.csv中不可用的hr
import pandas as pd #pandas庫
from sklearn.preprocessing import onehotencoder #獨熱編碼
from sklearn.preprocessing import polynomialfeatures #多項式擴充套件
from sklearn.preprocessing import standardscaler #特徵縮放
(標準化)
from sklearn.model_selection import train_test_split #資料集切分
from sklearn.linear_model import linearregression #線性回歸
from sklearn.linear_model import ridge #嶺回歸
from sklearn.metrics import mean_absolute_error #平均絕對誤差
# 讀取資料
path =
"../../datas/hour.csv"
data = pd.
read_csv
(path)
## 刪除無用的列
data.
drop
(columns=
['instant'
,'dteday'
,'casual'
,'registered'
],inplace=true)
# print
(data)
## 檢查哪些特徵需要做獨熱編碼
# for i in data.columns:
# print
(data[i]
.value_counts()
)## 獨熱編碼,對需要進行獨熱編碼的列編碼
hotcoder =
onehotencoder
(sparse=false,handle_unknown=
'ignore'
)hot = hotcoder.
fit_transform
(data[
['season'
,'mnth'
,'hr'
,'weekday'
,'weathersit']]
)hot = pd.
dataframe
(hot)
# print
(hot)
## 刪除掉獨熱編碼的列
data.
drop
(columns=
['season'
,'mnth'
,'hr'
,'weekday'
,'weathersit'
],inplace=true)
print
(data)
## 多項式擴充套件
polycoder =
polynomialfeatures
(degree=
3,interaction_only=false)
pcoder = polycoder.
fit_transform
(data[
['temp'
,'atemp'
,'hum'
,'windspeed']]
)pcoder = pd.
dataframe
(pcoder,columns=polycoder.
get_feature_names()
)print
(pcoder)
## 標準化
sscoder =
standardscaler()
scoder = sscoder.
fit_transform
(pcoder)
scoder = pd.
dataframe
(scoder,columns=pf.
get_feature_names()
)print
(scoder)
## 刪除掉標準化的列
data.
drop
(columns=
['temp'
,'atemp'
,'hum'
,'windspeed'
],inplace=true)
# print
(data)
## 合併
data = pd.
concat
([hot,scoder,data]
,axis=1)
print
(data)
## 構建x和y
x = data.iloc[:,
:-1]
y = data.iloc[:,
-1]## 劃分訓練集和測試集
train_x,test_x,train_y,test_y =
train_test_split
(x,y,test_size=
0.33
,random_state=7)
## 訓練linearregression模型
lr =
linearregression()
lr.fit
(train_x,train_y)
print
(lr.
score
(test_x,test_y)
)hietory =
mean_absolute_error
(y_pred=lr.
predict
(test_x)
,y_true=test_y)
print
(hietory)
## 訓練ridge
ridge =
ridge
(alpha=
0.7,fit_intercept=true,max_iter=
200,solver=
'auto'
)ridge.
fit(train_x,train_y)
print
(ridge.
score
(test_x,test_y)
)hietory1 =
mean_absolute_error
(y_pred=ridge.
predict
(test_x)
,y_true=test_y)
print
(hietory1)
效果如下
0.7032993956224423
74.06016823570432
0.7032488512553888
74.06116966254734
機器學習之pandas庫 小專案實戰
global active power global reactive power global intensity b 1 5.360 0.436 23.0 1.0 2 5.374 0.498 23.0 1.0 3 5.388 0.502 23.0 1.0 4 3.666 0.528 15.8 1...
機器學習之pandas
import pandas as pd a pd.read csv 檔案路徑 讀取檔案 a.head 顯示的條數 顯示前部分資料 a.tail 顯示的條數 顯示後部分資料 a.columns 輸出列 a.loc 序列號 輸出乙個樣本 a.columns.tolist 將列轉換成列表 c.endwit...
機器學習 pandas庫使用
關於pandas庫中dataframe的使用,dataframe表示的是乙個有序的 dataframe有自己的行索引和列索引,這與series不同,series只有列索引,dataframe每一列,每一行都可以是不同的資料型別,接下來讓我們來看一下dataframe的使用 import pandas...