日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

逻辑回归(Logistic Regression)简介及C++实现

發布時間:2023/11/27 生活经验 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 逻辑回归(Logistic Regression)简介及C++实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

邏輯回歸(Logistic Regression):該模型用于分類而非回歸,可以使用logistic sigmoid函數( 可參考:http://blog.csdn.net/fengbingchun/article/details/73848734?)將線性函數的輸出壓縮進區間(0,1):

p(y=1| x;θ)=σ(θTx).

邏輯回歸是一種廣義的線性回歸分析(可參考:?http://blog.csdn.net/fengbingchun/article/details/77892193?)模型,因此與多重線性回歸分析有很多相同之處。它們的模型形式基本上相同,都具有w’x+b,其中w和b是待求參數,其區別在于它們的因變量不同,多重線性回歸直接將w’x+b作為因變量,即y=w’x+b,而邏輯回歸則通過函數L將w’x+b對應一個隱狀態p, p=L(w’x+b),然后根據p與1-p的大小決定因變量的值。如果L是logistic函數,就是logistic回歸,如果L是多項式函數就是多項式回歸。

Logistic回歸的因變量可以是二分類的,也可以是多分類的。多類可以使用softmax方法(可參考?http://blog.csdn.net/fengbingchun/article/details/75220591?)進行處理。

優化邏輯回歸的方法包括:梯度下降法、牛頓法、BFGS。優化的主要目標是找到一個方向,參數朝這個方向移動之后使得似然函數的值能夠減少,這個方向往往由一階偏導或者二階偏導各種組合求得。這幾種方法一般都是采用迭代的方式來逐步逼近極小值。

Logistic回歸類似于線性回歸模型,但更適用于因變量為二分變量的模型。邏輯回歸中預測函數用到了邏輯函數即sigmoid函數(邏輯回歸擬合函數)。邏輯回歸中的損失函數(cost function)是基于最大似然估計推導的。

邏輯回歸中的過擬合:對于邏輯回歸或線性回歸的損失函數構成的模型,可能會有些權重很大,有些權重很小,導致過擬合,使得模型的復雜度提高,泛化能力較差。一般多用正則化的方法來解決過擬合。

以下是參考OpenCV3.3中LogisticRegression類實現的二分類邏輯回歸code:包括訓練方法包括Batch和Mini Batch,并支持簡單的正則化方法,實現code如下:

logistic_regression.hpp:

#ifndef FBC_NN_LOGISTICREGRESSION_HPP_
#define FBC_NN_LOGISTICREGRESSION_HPP_#include <string>
#include <memory>
#include <vector>namespace ANN {template<typename T>
class LogisticRegression { // two categories
public:LogisticRegression() = default;int init(const T* data, const T* labels, int train_num, int feature_length,int reg_kinds = -1, T learning_rate = 0.00001, int iterations = 10000, int train_method = 0, int mini_batch_size = 1);int train(const std::string& model);int load_model(const std::string& model);T predict(const T* data, int feature_length) const; // y = 1/(1+exp(-(wx+b)))// Regularization kindsenum RegKinds {REG_DISABLE = -1, // Regularization disabledREG_L1 = 0 // L1 norm};// Training methodsenum Methods {BATCH = 0,MINI_BATCH = 1};private:int store_model(const std::string& model) const;T calc_sigmoid(T x) const; // y = 1/(1+exp(-x))T norm(const std::vector<T>& v1, const std::vector<T>& v2) const;void batch_gradient_descent();void mini_batch_gradient_descent();void gradient_descent(const std::vector<std::vector<T>>& data_batch, const std::vector<T>& labels_batch, int length_batch);std::vector<std::vector<T>> data;std::vector<T> labels;int iterations = 1000;int train_num = 0; // train samples numint feature_length = 0;T learning_rate = 0.00001;std::vector<T> thetas; // coefficient//T epsilon = 0.000001; // termination conditionT lambda = (T)0.; // regularization methodint train_method = 0;int mini_batch_size = 1;
};} // namespace ANN#endif // FBC_NN_LOGISTICREGRESSION_HPP_
logistic_regression.cpp:

#include "logistic_regression.hpp"
#include <fstream>
#include <algorithm>
#include <functional>
#include <numeric>
#include "common.hpp"namespace ANN {template<typename T>
int LogisticRegression<T>::init(const T* data, const T* labels, int train_num, int feature_length,int reg_kinds, T learning_rate, int iterations, int train_method, int mini_batch_size)
{if (train_num < 2) {fprintf(stderr, "logistic regression train samples num is too little: %d\n", train_num);return -1;}if (learning_rate <= 0) {fprintf(stderr, "learning rate must be greater 0: %f\n", learning_rate);return -1;}if (iterations <= 0) {fprintf(stderr, "number of iterations cannot be zero or a negative number: %d\n", iterations);return -1;}CHECK(reg_kinds == -1 || reg_kinds == 0);CHECK(train_method == 0 || train_method == 1);CHECK(mini_batch_size >= 1 && mini_batch_size < train_num);if (reg_kinds == REG_L1) this->lambda = (T)1.;if (train_method == MINI_BATCH) this->train_method = 1;this->mini_batch_size = mini_batch_size;this->learning_rate = learning_rate;this->iterations = iterations;this->train_num = train_num;this->feature_length = feature_length;this->data.resize(train_num);this->labels.resize(train_num);for (int i = 0; i < train_num; ++i) {const T* p = data + i * feature_length;this->data[i].resize(feature_length+1);this->data[i][0] = (T)1; // biasfor (int j = 0; j < feature_length; ++j) {this->data[i][j+1] = p[j];}this->labels[i] = labels[i];}this->thetas.resize(feature_length + 1, (T)0.); // bias + feature_lengthreturn 0;
}template<typename T>
int LogisticRegression<T>::train(const std::string& model)
{CHECK(data.size() == labels.size());if (train_method == BATCH) batch_gradient_descent();else mini_batch_gradient_descent();CHECK(store_model(model) == 0);return 0;
}template<typename T>
void LogisticRegression<T>::batch_gradient_descent()
{for (int i = 0; i < iterations; ++i) {gradient_descent(data, labels, train_num);/*std::unique_ptr<T[]> z(new T[train_num]), gradient(new T[thetas.size()]);for (int j = 0; j < train_num; ++j) {z.get()[j] = (T)0.;for (int t = 0; t < feature_length + 1; ++t) {z.get()[j] += data[j][t] * thetas[t];}}std::unique_ptr<T[]> pcal_a(new T[train_num]), pcal_b(new T[train_num]), pcal_ab(new T[train_num]);for (int j = 0; j < train_num; ++j) {pcal_a.get()[j] = calc_sigmoid(z.get()[j]) - labels[j];pcal_b.get()[j] = data[j][0]; // biaspcal_ab.get()[j] = pcal_a.get()[j] * pcal_b.get()[j];}gradient.get()[0] = ((T)1. / train_num) * std::accumulate(pcal_ab.get(), pcal_ab.get() + train_num, (T)0.); // biasfor (int j = 1; j < thetas.size(); ++j) {for (int t = 0; t < train_num; ++t) {pcal_b.get()[t] = data[t][j];pcal_ab.get()[t] = pcal_a.get()[t] * pcal_b.get()[t];}gradient.get()[j] = ((T)1. / train_num) * std::accumulate(pcal_ab.get(), pcal_ab.get() + train_num, (T)0.) +(lambda / train_num) * thetas[j];}for (int i = 0; i < thetas.size(); ++i) {thetas[i] = thetas[i] - learning_rate / train_num * gradient.get()[i];}*/}
}template<typename T>
void LogisticRegression<T>::mini_batch_gradient_descent()
{const int step = mini_batch_size;const int iter_batch = (train_num + step - 1) / step;for (int i = 0; i < iterations; ++i) {int pos{ 0 };for (int j = 0; j < iter_batch; ++j) {std::vector<std::vector<T>> data_batch;std::vector<T> labels_batch;int remainder{ 0 };if (pos + step < train_num) remainder = step;else remainder = train_num - pos;data_batch.resize(remainder);labels_batch.resize(remainder, (T)0.);for (int t = 0; t < remainder; ++t) {data_batch[t].resize(thetas.size(), (T)0.);for (int m = 0; m < thetas.size(); ++m) {data_batch[t][m] = data[pos + t][m];}labels_batch[t] = labels[pos + t];}gradient_descent(data_batch, labels_batch, remainder);pos += step;}}
}template<typename T>
void LogisticRegression<T>::gradient_descent(const std::vector<std::vector<T>>& data_batch, const std::vector<T>& labels_batch, int length_batch)
{std::unique_ptr<T[]> z(new T[length_batch]), gradient(new T[this->thetas.size()]);for (int j = 0; j < length_batch; ++j) {z.get()[j] = (T)0.;for (int t = 0; t < this->thetas.size(); ++t) {z.get()[j] += data_batch[j][t] * this->thetas[t];}}std::unique_ptr<T[]> pcal_a(new T[length_batch]), pcal_b(new T[length_batch]), pcal_ab(new T[length_batch]);for (int j = 0; j < length_batch; ++j) {pcal_a.get()[j] = calc_sigmoid(z.get()[j]) - labels_batch[j];pcal_b.get()[j] = data_batch[j][0]; // biaspcal_ab.get()[j] = pcal_a.get()[j] * pcal_b.get()[j];}gradient.get()[0] = ((T)1. / length_batch) * std::accumulate(pcal_ab.get(), pcal_ab.get() + length_batch, (T)0.); // biasfor (int j = 1; j < this->thetas.size(); ++j) {for (int t = 0; t < length_batch; ++t) {pcal_b.get()[t] = data_batch[t][j];pcal_ab.get()[t] = pcal_a.get()[t] * pcal_b.get()[t];}gradient.get()[j] = ((T)1. / length_batch) * std::accumulate(pcal_ab.get(), pcal_ab.get() + length_batch, (T)0.) +(this->lambda / length_batch) * this->thetas[j];}for (int i = 0; i < thetas.size(); ++i) {this->thetas[i] = this->thetas[i] - this->learning_rate / length_batch * gradient.get()[i];}
}template<typename T>
int LogisticRegression<T>::load_model(const std::string& model)
{std::ifstream file;file.open(model.c_str(), std::ios::binary);if (!file.is_open()) {fprintf(stderr, "open file fail: %s\n", model.c_str());return -1;}int length{ 0 };file.read((char*)&length, sizeof(length));thetas.resize(length);file.read((char*)thetas.data(), sizeof(T)*thetas.size());file.close();return 0;
}template<typename T>
T LogisticRegression<T>::predict(const T* data, int feature_length) const
{CHECK(feature_length + 1 == thetas.size());T value{(T)0.};for (int t = 1; t < thetas.size(); ++t) {value += data[t - 1] * thetas[t];}return (calc_sigmoid(value + thetas[0]));
}template<typename T>
int LogisticRegression<T>::store_model(const std::string& model) const
{std::ofstream file;file.open(model.c_str(), std::ios::binary);if (!file.is_open()) {fprintf(stderr, "open file fail: %s\n", model.c_str());return -1;}int length = thetas.size();file.write((char*)&length, sizeof(length));file.write((char*)thetas.data(), sizeof(T) * thetas.size());file.close();return 0;
}template<typename T>
T LogisticRegression<T>::calc_sigmoid(T x) const
{return ((T)1 / ((T)1 + exp(-x)));
}template<typename T>
T LogisticRegression<T>::norm(const std::vector<T>& v1, const std::vector<T>& v2) const
{CHECK(v1.size() == v2.size());T sum{ 0 };for (int i = 0; i < v1.size(); ++i) {T minus = v1[i] - v2[i];sum += (minus * minus);}return std::sqrt(sum);
}template class LogisticRegression<float>;
template class LogisticRegression<double>;} // namespace ANN
測試code:

#include "funset.hpp"
#include <iostream>
#include "perceptron.hpp"
#include "BP.hpp""
#include "CNN.hpp"
#include "linear_regression.hpp"
#include "naive_bayes_classifier.hpp"
#include "logistic_regression.hpp"
#include "common.hpp"
#include <opencv2/opencv.hpp>// ================================ logistic regression =====================
int test_logistic_regression_train()
{const std::string image_path{ "E:/GitCode/NN_Test/data/images/digit/handwriting_0_and_1/" };cv::Mat data, labels;for (int i = 1; i < 11; ++i) {const std::vector<std::string> label{ "0_", "1_" };for (const auto& value : label) {std::string name = std::to_string(i);name = image_path + value + name + ".jpg";cv::Mat image = cv::imread(name, 0);if (image.empty()) {fprintf(stderr, "read image fail: %s\n", name.c_str());return -1;}data.push_back(image.reshape(0, 1));}}data.convertTo(data, CV_32F);std::unique_ptr<float[]> tmp(new float[20]);for (int i = 0; i < 20; ++i) {if (i % 2 == 0) tmp[i] = 0.f;else tmp[i] = 1.f;}labels = cv::Mat(20, 1, CV_32FC1, tmp.get());ANN::LogisticRegression<float> lr;const float learning_rate{ 0.00001f };const int iterations{ 250 };int reg_kinds = lr.REG_DISABLE; //ANN::LogisticRegression<float>::REG_L1;int train_method = lr.MINI_BATCH; //ANN::LogisticRegression<float>::BATCH;int mini_batch_size = 5;int ret = lr.init((float*)data.data, (float*)labels.data, data.rows, data.cols/*,reg_kinds, learning_rate, iterations, train_method, mini_batch_size*/);if (ret != 0) {fprintf(stderr, "logistic regression init fail: %d\n", ret);return -1;}const std::string model{ "E:/GitCode/NN_Test/data/logistic_regression.model" };ret = lr.train(model);if (ret != 0) {fprintf(stderr, "logistic regression train fail: %d\n", ret);return -1;}return 0;
}int test_logistic_regression_predict()
{const std::string image_path{ "E:/GitCode/NN_Test/data/images/digit/handwriting_0_and_1/" };cv::Mat data, labels, result;for (int i = 11; i < 21; ++i) {const std::vector<std::string> label{ "0_", "1_" };for (const auto& value : label) {std::string name = std::to_string(i);name = image_path + value + name + ".jpg";cv::Mat image = cv::imread(name, 0);if (image.empty()) {fprintf(stderr, "read image fail: %s\n", name.c_str());return -1;}data.push_back(image.reshape(0, 1));}}data.convertTo(data, CV_32F);std::unique_ptr<int[]> tmp(new int[20]);for (int i = 0; i < 20; ++i) {if (i % 2 == 0) tmp[i] = 0;else tmp[i] = 1;}labels = cv::Mat(20, 1, CV_32SC1, tmp.get());CHECK(data.rows == labels.rows);const std::string model{ "E:/GitCode/NN_Test/data/logistic_regression.model" };ANN::LogisticRegression<float> lr;int ret = lr.load_model(model);if (ret != 0) {fprintf(stderr, "load logistic regression model fail: %d\n", ret);return -1;}for (int i = 0; i < data.rows; ++i) {float probability = lr.predict((float*)(data.row(i).data), data.cols);fprintf(stdout, "probability: %.6f, ", probability);if (probability > 0.5) fprintf(stdout, "predict result: 1, ");else fprintf(stdout, "predict result: 0, ");fprintf(stdout, "actual result: %d\n", ((int*)(labels.row(i).data))[0]);}return 0;
}
訓練數據集為從MNIST(可以參考:http://blog.csdn.net/fengbingchun/article/details/49611549 ?)中train中隨機選取的0、1各10個圖像;測試數據集為從MNIST中test中隨機選取的0、1各10個圖像,如下圖,其中第一排前10個0用于訓練,后10個0用于測試;第二排前10個1用于訓練,后10個1用于測試:


測試結果如下:

由執行結果可知:測試圖像全部識別正確,并且與OpenCV3.3中結果一致。
GitHub:https://github.com/fengbingchun/NN_Test

總結

以上是生活随笔為你收集整理的逻辑回归(Logistic Regression)简介及C++实现的全部內容,希望文章能夠幫你解決所遇到的問題。

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

亚洲成人免费 | www.69xx | 国产成人精品免费在线观看 | 日韩在线免费小视频 | 久久综合色播五月 | 亚洲国产成人高清精品 | 天天天射 | 天天爱天天操天天干 | 国产精品美女999 | 四虎影视www| 人人插人人草 | 高清av不卡| 亚洲精品午夜久久久久久久久久久 | 看片黄网站 | 日韩在线观看小视频 | 在线精品亚洲一区二区 | 成人在线视频网 | 欧美99久久 | 精品视频免费看 | 综合天堂av久久久久久久 | 天天插狠狠干 | 日韩三级免费观看 | 国际精品久久久 | 日批在线看| 国产免费一区二区三区最新 | 狠狠操狠狠干天天操 | 九九综合九九综合 | 欧美精品乱码久久久久久按摩 | 日日碰狠狠添天天爽超碰97久久 | 92精品国产成人观看免费 | 伊人伊成久久人综合网站 | 91麻豆精品国产91久久久久久久久 | 9在线观看免费高清完整版在线观看明 | 久久久精品国产免费观看一区二区 | 国产91学生粉嫩喷水 | 久久久蜜桃| 欧美精品一区二区三区一线天视频 | 日韩欧美在线一区 | 网址你懂的在线观看 | 激情五月播播久久久精品 | 国产高清视频在线观看 | 在线观看一级片 | 欧美另类xxx | 高清av在线免费观看 | 久久亚洲国产精品 | 国产一级视频在线观看 | 午夜精品电影 | 欧美另类v | 91免费高清在线观看 | 亚洲人在线视频 | 在线观看激情av | 午夜久久电影网 | 欧洲亚洲激情 | 免费a视频在线 | 久久久久久99精品 | 天天综合色 | 国产精品露脸在线 | 久久天天躁夜夜躁狠狠85麻豆 | 97夜夜澡人人双人人人喊 | 亚洲乱码在线观看 | 精品久久久久久亚洲综合网 | 久99久中文字幕在线 | 国产精品永久免费视频 | 免费看的黄网站软件 | 色婷久久| 久久久www成人免费毛片麻豆 | www.狠狠插.com | 亚洲综合欧美日韩狠狠色 | 久久久久亚洲精品男人的天堂 | 久久综合偷偷噜噜噜色 | 在线观看黄色大片 | 成人网页在线免费观看 | 最近中文字幕完整视频高清1 | www免费 | 五月视频 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 欧洲精品二区 | 最新高清无码专区 | 少妇bbbb| 亚洲高清91 | 五月婷婷综合在线观看 | 久草网免费 | 婷婷午夜天| 97超碰在线播放 | 欧美激情精品久久久久久 | 99在线观看免费视频精品观看 | 午夜电影 电影 | 国产91成人在在线播放 | 天天爽夜夜爽人人爽一区二区 | 亚洲www天堂com | 欧美不卡在线 | av免费观看在线 | 国产精品久久久久久久久搜平片 | 国产精品久久久久影院 | 99视频播放 | 婷婷精品国产欧美精品亚洲人人爽 | 国产亚州精品视频 | 中文在线a√在线 | 国产午夜影院 | av大片免费在线观看 | 日韩在线观看影院 | 午夜av激情 | 精品九九九九 | 久草免费在线观看视频 | 99资源网 | 成人a在线观看 | 欧美一级片在线观看视频 | bbb搡bbb爽爽爽 | 99热精品国产一区二区在线观看 | www久草 | 免费日韩一区 | 久久公开免费视频 | 99视频免费看 | 婷婷综合国产 | 在线激情小视频 | 色噜噜日韩精品一区二区三区视频 | 97超视频在线观看 | 国产一在线精品一区在线观看 | 99性视频 | www.97视频 | 国产精品99久久免费黑人 | 中文字幕黄色网址 | 在线观看一二三区 | 偷拍精偷拍精品欧洲亚洲网站 | 最近更新好看的中文字幕 | 96久久欧美麻豆网站 | 亚洲精品欧美专区 | 亚洲另类视频在线 | 中文字幕一区二区三区乱码不卡 | 中文字幕日韩av | 黄色成人在线 | 久久久久免费网站 | 伊人天天色 | 国产黄色免费在线观看 | 国产一级特黄毛片在线毛片 | 成人黄色免费在线观看 | 国产精品免费在线播放 | 欧美精品久久久久久久 | 成人在线网站观看 | 中国精品少妇 | 成人久久久久久久久久 | 欧美做受69 | 在线国产一区二区 | 婷婷色网 | 激情综合色图 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 日韩网站中文字幕 | 国产精品久久99综合免费观看尤物 | 91重口视频| 日韩在线观看精品 | 狠狠色狠狠色综合日日小说 | 国产 日韩 中文字幕 | 国产精品一区免费在线观看 | 国产日韩欧美在线影视 | 国产精品久久久久影视 | 国产精品久久久久9999 | 国内精品久久久久久久97牛牛 | 国色综合 | 99免费精品视频 | 97超碰.com| 中文字幕免费观看全部电影 | 久草视频免费 | 高清视频一区 | 免费网站在线观看人 | 午夜美女wwww | 最近日本韩国中文字幕 | 国产一区二区在线视频观看 | 国产精品21区 | 亚洲成人黄 | av片在线观看免费 | 国产精品国内免费一区二区三区 | 国产免费观看视频 | 在线视频欧美日韩 | 免费91在线 | 国产精品视频最多的网站 | www一起操 | 国产特级毛片 | 免费福利视频网站 | 日韩三级视频在线观看 | 国产精品久久久一区二区 | 91精品国产综合久久久久久久 | 免费在线a| 久久狠狠干 | 毛片美女网站 | 9久久精品 | 精品99在线视频 | 久久国产精品99久久人人澡 | 免费成人在线观看视频 | 国产精品久久久网站 | 日本在线观看一区二区 | 国产女教师精品久久av | 国产精品久久久久久99 | 黄色小视频在线观看免费 | 久久视频国产精品免费视频在线 | av+在线播放在线播放 | 91麻豆精品| 在线观看视频97 | 亚洲精品电影在线 | www在线观看视频 | 黄色软件在线看 | 中文字幕一区二区三区乱码在线 | 黄色综合 | a黄色片| 一级特黄aaa大片在线观看 | 国产视频一区精品 | 九九欧美视频 | 日韩视频中文字幕 | 国产激情小视频在线观看 | 精品99久久久久久 | wwxxxx日本 | 午夜黄网 | 久久伊人免费视频 | 久久久午夜电影 | 国语对白少妇爽91 | 精品视频免费 | 永久免费精品视频网站 | 久久精品播放 | 日韩在线视频看看 | 91精品国产自产老师啪 | av福利第一导航 | 日韩毛片在线一区二区毛片 | 九九av| 人人干天天射 | 久久精品国产免费看久久精品 | 国产精品久久久一区二区三区网站 | 久久精品视 | 麻豆国产精品va在线观看不卡 | 四虎国产| 天天干人人干 | 精品国产一区二区三区免费 | 6080yy精品一区二区三区 | 99热这里有| www激情久久 | 五月激情丁香 | 日本aaa在线观看 | 在线免费观看国产黄色 | 91九色在线观看视频 | 欧美粗又大| 永久中文字幕 | 91国内在线| 18国产精品白浆在线观看免费 | 国产第一页在线播放 | 天天超碰 | 国产免费亚洲 | 亚洲国产三级 | 国产护士av| 亚洲黄色在线播放 | 成人黄色在线播放 | 九九热在线视频 | av一区二区三区在线播放 | 日日干狠狠操 | 男女精品久久 | 午夜av免费在线观看 | 免费男女羞羞的视频网站中文字幕 | 久久综合狠狠综合久久综合88 | 精品日韩av| 久久精精品视频 | 日韩二区在线观看 | 日韩大片在线免费观看 | 久久免费视频7 | 午夜精品一区二区三区在线观看 | 久久婷五月 | 日韩大片在线免费观看 | 国产精品去看片 | 亚洲综合视频在线播放 | 欧美狠狠操 | 麻豆免费在线播放 | 亚洲人成人在线 | 国产精品黄色在线观看 | 九草在线视频 | 日韩高清不卡在线 | 韩国一区在线 | 人人超碰人人 | 欧美一级片免费在线观看 | 久久久久久免费网 | 久久精品视频国产 | 午夜性盈盈| 亚洲精品动漫成人3d无尽在线 | 美女视频一区二区 | 国产成人精品免高潮在线观看 | 国产精品爽爽久久久久久蜜臀 | 欧美小视频在线 | 九九综合在线 | 欧美精品三级 | 亚洲 精品在线视频 | 91九色丨porny丨丰满6 | 人人精久| 日韩最新理论电影 | 国产精品区一区 | a视频在线观看免费 | av免费看在线 | 精品视频久久 | 在线观看一区视频 | 久久久九九 | 日韩激情免费视频 | 国产经典 欧美精品 | 狠狠干夜夜操 | 免费在线观看毛片网站 | 四虎国产精品永久在线国在线 | 成人在线播放免费观看 | 日韩中文字幕免费在线观看 | 激情综合啪 | 天天综合中文 | 天天天色综合a | 三上悠亚一区二区在线观看 | 国产精品久久久久影院 | 亚洲精品久久久蜜桃直播 | 欧美日韩免费在线观看视频 | 久 久久影院 | 国产精品成久久久久三级 | 国产污视频在线观看 | 日韩毛片在线免费观看 | 一区二区三区中文字幕在线观看 | 精品欧美一区二区三区久久久 | 精品成人网| 国产成免费视频 | 久久人人爽爽 | 欧美日韩国产在线精品 | 超碰精品在线 | 97人人爽 | 免费观看一区 | 色www精品视频在线观看 | 免费福利在线视频 | 午夜精品成人一区二区三区 | 最新av在线播放 | 999久久久 | 久久这里只有精品久久 | 免费观看黄色12片一级视频 | 天天操比| 91福利视频网站 | 成年人在线免费视频观看 | 三级av在线免费观看 | 亚洲欧美日本一区二区三区 | 精品999在线 | 久久av影院 | 久久久麻豆 | 欧美另类人妖 | 免费在线一区二区三区 | 亚洲视频免费 | 激情婷婷亚洲 | 日韩黄色软件 | 精品亚洲国产视频 | 91精品亚洲影视在线观看 | 精品久久久久久亚洲综合网站 | 国产精品系列在线 | 国产精品免费不卡 | 91视频 - x99av| 香蕉视频在线网站 | 亚洲国产精品视频在线观看 | 日韩午夜在线观看 | 日韩黄色在线观看 | 四虎在线免费观看视频 | 91av网址 | 国内成人综合 | 免费高清在线视频一区· | 91精品一区二区三区蜜臀 | 色网站在线免费观看 | 97视频成人 | 久久综合之合合综合久久 | 亚洲欧美日韩精品一区二区 | 久久99视频免费观看 | 日本在线中文在线 | 国产精品99久久久精品免费观看 | 在线导航福利 | 成人免费看黄 | 免费毛片aaaaaa | 91九色网址| 一级欧美黄 | 色人久久| 国产精品麻豆一区二区三区 | 国产第一二区 | 国产一级高清 | 日韩在线视频免费播放 | 久久久久久网站 | 欧美日韩视频观看 | 午夜精品一区二区三区四区 | 日本中文字幕视频 | 精品久久久久久久 | 人人干在线| 久久久久久久福利 | 午夜精品视频福利 | www178ccom视频在线 | 麻豆播放| 中文字幕 婷婷 | 伊人久久国产 | 婷婷色影院 | 久久久久二区 | 91女神的呻吟细腰翘臀美女 | 最近日本字幕mv免费观看在线 | 五月激情天 | 96国产在线 | 在线之家免费在线观看电影 | 成年人在线免费看视频 | 国产高清一区二区 | 久久短视频 | 欧美日韩免费一区二区三区 | 免费网站污 | 婷婷成人综合 | 成人免费看片网址 | 超碰大片| 91麻豆精品久久久久久 | 午夜在线免费观看视频 | 日韩av影片在线观看 | 久久久久久久国产精品影院 | 国产男女无遮挡猛进猛出在线观看 | 天天爱天天草 | 久久国产手机看片 | 97夜夜澡人人爽人人免费 | 天堂av色婷婷一区二区三区 | 国产高清视频免费在线观看 | 欧美极度另类性三渗透 | 日韩在线字幕 | 国产精品欧美在线 | 成人日批视频 | 九九九热| 久草在线最新视频 | 免费观看的黄色 | www视频免费在线观看 | 日韩欧美在线观看一区二区三区 | 人人精久 | 成人久久18免费网站麻豆 | 99久久999久久久精玫瑰 | 97超碰超碰 | 亚洲精品国产综合99久久夜夜嗨 | 96香蕉视频 | 欧美成人黄色片 | 欧美在线视频一区二区三区 | a√天堂中文在线 | 久久久免费看视频 | 日韩久久久久久久久 | 最近最新中文字幕视频 | 精品久久91 | 国产精品免费久久久久久 | 五月婷婷丁香综合 | 国内精品免费久久影院 | 在线观看免费福利 | 免费成人在线网站 | 波多野结衣精品在线 | 91亚洲精品在线 | 久久免费av电影 | 久久av伊人 | 欧洲亚洲激情 | 美女av免费看 | 在线观看www. | 国产高清视频在线 | 欧美性免费| 天天插天天干 | 在线视频欧美日韩 | 色操插 | 91麻豆国产| 色综合 久久精品 | 伊人亚洲综合网 | 天天色视频 | 激情视频综合网 | 久久久精品亚洲 | 午夜电影久久久 | 亚洲精品乱码久久久久久蜜桃欧美 | 国产欧美精品一区二区三区四区 | 韩日av一区二区 | 国产精品a成v人在线播放 | 九九热久久免费视频 | 久草在线视频网站 | 亚洲精品午夜国产va久久成人 | 亚洲综合欧美日韩狠狠色 | 中文字幕第一页在线播放 | 不卡视频在线看 | 热久久精品在线 | 精品久久久久久亚洲综合网站 | 91av99| 亚洲精品国偷自产在线99热 | 涩涩爱夜夜爱 | 91亚洲欧美 | 国产一级性生活 | 亚洲精品久久久久www | 亚洲va综合va国产va中文 | 亚洲年轻女教师毛茸茸 | 国产精品永久在线 | 国产剧情一区二区在线观看 | 欧美精品久久久久久 | 夜夜骑天天操 | 91精品国产综合久久久久久久 | 中文字幕五区 | 国产老太婆免费交性大片 | 欧美一级视频一区 | 丝袜一区在线 | 欧美一区二区三区在线播放 | 色综合久久久久综合 | 精品国产诱惑 | 碰碰影院 | 日日摸日日 | 黄色毛片一级 | 日本中文一级片 | 亚洲精品在线免费看 | a黄在线观看 | 在线看小早川怜子av | 国产精品久久毛片 | 国产精品videossex国产高清 | 性色av一区二区 | 日韩专区在线观看 | 在线观看日韩国产 | 欧美日韩一区二区三区不卡 | 狠狠色丁香婷婷综合视频 | 日韩在线播放欧美字幕 | 国产精品高清在线观看 | www.夜夜干.com| 国产精品69久久久久 | 免费a v在线 | 久久99久久99精品免观看软件 | 久久久久亚洲精品男人的天堂 | 国产真实精品久久二三区 | 国产精品久久久久永久免费观看 | 在线一二三四区 | 亚洲蜜桃av | 久久电影色| 天天干天天干天天干天天干天天干天天干 | 毛片一级免费一级 | 超碰在线人人爱 | 在线电影av | 日韩一区精品 | 久草在线资源观看 | 天天爽天天摸 | 可以免费看av | 菠萝菠萝在线精品视频 | 欧美日韩国产精品爽爽 | 日韩精品一区二区不卡 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 中文字幕在线不卡国产视频 | 麻豆视频免费网站 | 91热精品 | 日韩特黄一级欧美毛片特黄 | 在线国产高清 | 色综合天天狠天天透天天伊人 | 成人a级免费视频 | 在线观看国产中文字幕 | www.狠狠操.com | 日批网站在线观看 | 久久久久福利视频 | 国产精品99免视看9 国产精品毛片一区视频 | 国产精品久久久久影院日本 | 婷婷六月天综合 | 99精品视频在线观看播放 | 久久狠狠一本精品综合网 | 国产成人精品av久久 | 久久久官网 | 久精品视频 | 免费在线激情电影 | 国产精品99蜜臀久久不卡二区 | av免费网页 | 国产精品毛片久久蜜 | 国产区在线 | av免费播放| 在线视频日韩欧美 | 精品一区二区三区香蕉蜜桃 | 午夜在线国产 | 欧美极品在线播放 | 国产精品久久久久久妇 | 日韩欧美高清在线观看 | 日韩精品专区 | 色综合天天天天做夜夜夜夜做 | 在线高清一区 | 超碰97国产| 91视频在线观看下载 | 999成人免费视频 | 最新久久免费视频 | 日本中文乱码卡一卡二新区 | 中文字幕一区二区三区精华液 | 成人一级视频在线观看 | 麻豆系列在线观看 | 97电影院在线观看 | 麻花豆传媒mv在线观看 | 成人小视频在线观看免费 | 成人亚洲精品久久久久 | 人人爽人人搞 | 国产二区精品 | 麻豆传媒在线免费看 | 日日干天天爽 | 日韩精品在线播放 | 黄色一级免费电影 | 国产精品区在线观看 | 色在线中文字幕 | 黄色免费网站 | 激情综合国产 | 亚洲成av片人久久久 | 成人av资源网 | 国产原创在线视频 | 97人人添人澡人人爽超碰动图 | 亚洲精品一区二区在线观看 | 悠悠av资源片 | 国产一区私人高清影院 | 国产91全国探花系列在线播放 | 91福利视频网站 | 久草国产视频 | 国产一级免费观看视频 | 久久视频国产精品免费视频在线 | 992tv成人免费看片 | av韩国在线| 美女网站免费福利视频 | 免费在线成人av电影 | 日韩中文在线电影 | 亚洲黄色小说网址 | 国产精品久久99综合免费观看尤物 | 一级一片免费观看 | 午夜精品久久久久久久爽 | 亚洲午夜精品一区二区三区电影院 | 黄色av电影网 | 成人国产精品一区二区 | 99精品视频在线播放免费 | 黄色片免费在线 | 婷婷国产一区二区三区 | 日本不卡123| 天天爽人人爽夜夜爽 | 婷婷色婷婷| 精品三级av| 精品在线观看一区二区 | 91高清在线 | 婷婷国产在线 | 视频国产 | 在线免费亚洲 | 一级免费片 | 97理论片 | 成人av免费播放 | 91精品国产99久久久久久久 | 在线国产片 | 狠狠干 狠狠操 | 国语精品免费视频 | 中文字幕日韩一区二区三区不卡 | 成人中文字幕在线 | 国产视频一二三 | 美女国产网站 | 久久九九国产精品 | 国产打女人屁股调教97 | www.福利| 91免费国产在线观看 | 婷婷色综 | 日韩精品一区不卡 | 激情综合网在线观看 | 97自拍超碰| 日韩一区二区在线免费观看 | 久久国产精品99国产精 | 天天综合网久久综合网 | 国产亚洲va综合人人澡精品 | 国产大片免费久久 | 9999毛片| 亚洲最大激情中文字幕 | 99精品视频在线免费观看 | 成人av网站在线播放 | 99中文字幕视频 | 欧美中文字幕久久 | 亚洲 欧美 变态 国产 另类 | 97精产国品一二三产区在线 | 国产超碰在线观看 | 91黄色视屏 | 国产精品尤物视频 | av电影在线免费观看 | 国产区网址 | 亚洲第一色 | 精品欧美一区二区三区久久久 | 91av福利视频 | 五月情婷婷 | 手机在线中文字幕 | 日韩精品中字 | 日韩 精品 一区 国产 麻豆 | 国内视频一区二区 | 精品自拍sae8—视频 | 国产裸体视频网站 | 国产欧美精品一区二区三区四区 | 亚洲人久久 | 免费a视频在线 | 成人h动漫在线看 | 亚洲 欧洲 国产 日本 综合 | 久久婷婷一区 | 国产精品二区在线 | 日韩理论片中文字幕 | 999久久精品| 五月天堂网 | 97视频人人免费看 | 激情婷婷亚洲 | 99精品国产在热久久 | 精品黄色视 | 麻豆果冻剧传媒在线播放 | 国产又粗又猛又黄视频 | 色综合婷婷 | 国产亚洲视频在线免费观看 | 激情久久小说 | 91成年视频 | 日本精品视频在线播放 | 天天干天天做 | 欧美午夜视频在线 | 黄色小说网站在线 | 一区二区激情 | 久久久久久久久久久久久影院 | 国产91精品久久久久久 | 日韩在线精品视频 | 日日夜夜天天射 | 久久视频二区 | 一级黄色片在线免费看 | 欧美日韩不卡一区二区 | 一区免费视频 | 很黄很污的视频网站 | 日日射av | 91在线国内视频 | 国产老太婆免费交性大片 | 夜夜躁狠狠躁日日躁视频黑人 | 国产精品亚洲人在线观看 | 中文字幕国产视频 | 久久久九色精品国产一区二区三区 | 久久精品久久99精品久久 | 免费观看福利视频 | 国产精品自产拍在线观看蜜 | www.午夜视频 | 亚洲精品视频在线观看视频 | 丁香婷婷综合激情 | 在线观看播放av | 丝袜制服天堂 | 99精品视频免费观看视频 | 玖玖色在线观看 | 亚洲欧美成人在线 | 99免费在线视频 | 日韩欧美视频一区二区 | 午夜在线国产 | 三级在线视频观看 | 五月天综合网站 | 天天射天天射天天 | 最近中文字幕免费大全 | 天天av天天| 国产精品一区久久久久 | 色狠狠操 | 一区二区视频在线播放 | 国产午夜精品av一区二区 | 免费看十八岁美女 | 亚洲欧美一区二区三区孕妇写真 | 999在线观看视频 | 啪一啪在线 | 精品一二区| 激情综合网天天干 | 狠狠综合久久 | 午夜成人免费影院 | 中文字幕在线字幕中文 | 中文字幕在线日本 | 国产女做a爱免费视频 | 国产一级性生活视频 | 麻豆首页 | 国产999| 日韩在线观看视频在线 | 天天干天天天天 | 日韩视频中文字幕在线观看 | 高清av网| 91九色蝌蚪视频网站 | 色婷婷视频在线观看 | 欧美成人黄色 | 最新色站| 粉嫩高清一区二区三区 | 免费在线国产精品 | 亚洲精品在线观看中文字幕 | 这里只有精彩视频 | 天天射天天操天天干 | 亚洲综合精品视频 | 精油按摩av | 国产真实在线 | 97超视频在线观看 | 日韩精品综合在线 | 91色综合 | 色久av | 伊人婷婷综合 | 亚洲精品视频偷拍 | 96国产在线 | 精品99久久| 99国产在线视频 | 成人avav| 国产精品欧美久久久久无广告 | 97人人添人澡人人爽超碰动图 | 97久久精品午夜一区二区 | 日韩中文在线视频 | 中文字幕第一 | 欧美日韩一区二区在线 | 天天干干| 美女啪啪图片 | 99九九视频 | 99热这里精品 | 色婷婷国产在线 | 中文字幕 91| 久久99热这里只有精品 | 国内少妇自拍视频一区 | a电影在线观看 | 91视频黄色 | 日韩特级毛片 | 午夜av激情 | 亚洲影院天堂 | 国产成人久久精品亚洲 | 天天干夜夜爱 | 三日本三级少妇三级99 | 国产h在线观看 | 日日干夜夜干 | 亚洲精品视频观看 | 国产精品私拍 | 国产精品免费观看久久 | 精品一区 在线 | 免费在线激情电影 | 日韩精品免费一线在线观看 | 久久99精品国产麻豆婷婷 | 狠狠的干狠狠的操 | 久草在线欧美 | 日本中文字幕系列 | 欧美国产三区 | 丁香六月激情婷婷 | 国产九九九精品视频 | 国产精品字幕 | 国产一级免费播放 | 色综合久久久久 | 欧美在线视频免费 | 日本三级在线观看中文字 | 中文字幕一区二区三区久久蜜桃 | 国产精品中文 | 中文字幕在线高清 | 日韩丝袜在线观看 | 精品国产精品久久一区免费式 | 三级黄色网络 | 久草视频在线看 | 欧美成人免费在线 | 欧美在线观看视频免费 | 国产成人一区二区三区在线观看 | 亚洲电影黄色 | 首页中文字幕 | 亚洲爱爱视频 | av蜜桃在线| 91视频午夜| 国产精品久久久久久爽爽爽 | 天天色天天色 | 久久久久久片 | 久久综合五月天 | 国产香蕉久久精品综合网 | 啪啪资源| 亚洲精品国偷拍自产在线观看蜜桃 | 久久精品伊人 | 精品视频97 | 久久国产精品久久精品 | 国产一区视频在线播放 | 色天天综合网 | 国产精品中文字幕av | 国产精品aⅴ | 日韩中文字幕视频在线 | 久久精品一区二区 | www178ccom视频在线 | 亚洲成人xxx | 久久综合日 | 日本三级吹潮在线 | 黄色天堂在线观看 | 91在线在线观看 | 国产美女视频免费 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 狠狠狠色丁香综合久久天下网 | 操操操人人 | 99草在线视频 | 亚洲天堂网在线观看视频 | 九9热这里真品2 | 天天做天天干 | 国产精品成人一区二区 | 黄色免费网 | 国产视频精品视频 | 成人久久 | 成人av在线影院 | 久久96国产精品久久99漫画 | av免费观看网站 | 天天操操操操操 | 日韩丝袜在线 | 国产最新在线观看 | 久久精品韩国 | 91日韩在线专区 | 免费中文字幕在线观看 | 黄色资源网站 | 日韩二区三区在线观看 | 久操操| 综合在线亚洲 | 91chinese在线| 天天操,夜夜操 | 国产亚洲视频中文字幕视频 | 国产免码va在线观看免费 | av在线电影免费观看 | 亚洲国产伊人 | 丁香在线观看完整电影视频 | 激情欧美一区二区免费视频 | 免费色网 | av片中文字幕 | av888av.com| 亚洲不卡在线 | 中文字幕日韩一区二区三区不卡 | 91女神的呻吟细腰翘臀美女 | 国产亚洲精品女人久久久久久 | 激情视频免费在线 | 国产探花| 国产91国语对白在线 | 亚洲视频一级 | 国产一区自拍视频 | www.av免费观看| 国产97视频| 欧美日韩国产一区二区三区在线观看 | 国产精品视频你懂的 | 在线观看视频你懂得 | 国产一二三区av | 日韩免费三级 | 狠狠操狠狠操 | 午夜美女福利 | 91在线看免费 | 中文资源在线观看 | 亚洲欧洲一区二区在线观看 | 久久久久久蜜桃一区二区 | 亚洲黄色av | av高清在线观看 | 国产护士hd高朝护士1 | 狠狠色噜噜狠狠狠狠 | 91九色视频在线观看 | 亚洲国产人午在线一二区 | 国产精品18久久久久白浆 | 91免费高清观看 | 国产流白浆高潮在线观看 | 中文字幕 在线看 | 久久久麻豆精品一区二区 | 欧美美女激情18p | 五月婷婷综合在线观看 | 国产美女久久 | 国产做a爱一级久久 | 久久69av| 午夜视频99 | 久久五月婷婷综合 | 免费av在| 欧美日韩国产精品一区二区亚洲 | 国产系列精品av | 久久99国产精品久久 | 又黄又爽又色无遮挡免费 | 亚洲资源一区 | 日韩精品免费在线播放 | 国色天香在线观看 | 欧美激情另类文学 | 不卡中文字幕在线 | 国产色网站 | 亚洲黄色在线免费观看 | 国产免费资源 | 色久网 | 91九色蝌蚪视频网站 | 国产精品淫片 | 中文不卡视频在线 | 国产精品一区二区久久精品爱微奶 | 97在线视 | 久久在线观看视频 | 四虎天堂 | 97视频人人 | 最新av在线网址 | 综合网成人 | 天天综合91 | 激情综合五月婷婷 | 日本不卡一区二区 | 亚洲精品乱码久久久久久9色 | 中文字幕高清免费日韩视频在线 | 日韩午夜精品福利 | 国产精品永久免费观看 | 91高清一区 | 日韩精品视频网站 | 手机看片午夜 | 国产精品免费一区二区三区 | 99视频在线免费观看 | 黄色国产高清 | 色七七亚洲影院 | 91在线精品播放 | 日p视频在线观看 | 国产又粗又硬又爽的视频 | 色播亚洲婷婷 | 免费看黄20分钟 | 四虎成人精品永久免费av九九 | 久久久国产精品人人片99精片欧美一 | 国产日产精品久久久久快鸭 | 91久久丝袜国产露脸动漫 | 欧美在线观看视频一区二区三区 | 久草com| 亚洲精品视频在 | 色999在线 | 日韩亚洲欧美中文字幕 | 免费在线色 | 最近高清中文字幕在线国语5 | 国产精品18久久久久白浆 | 亚洲激情五月 | www一起操| 国产精品igao视频网网址 | 国产中出在线观看 | 久久少妇av| 亚洲va天堂va欧美ⅴa在线 | 欧美天天射| 亚洲3级| av福利免费 | 99视频在线精品国自产拍免费观看 | 精品久久一区二区三区 | 国产在线传媒 | av软件在线观看 | 五月天综合色激情 | 在线免费观看国产黄色 | 视频二区在线 | 国产一级片一区二区三区 | h视频在线看 | 国产黄色美女 |